@oxiaom/adoremix 1.0.16 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/package.json +1 -1
  2. package/src/config/webui.js +38 -18
  3. package/webui/high/assets/AdminLayout-BeGqmJmh.js +1 -0
  4. package/webui/high/assets/AdminLayout-Dg0cblhW.css +1 -0
  5. package/webui/high/assets/Announce-2364DXIw.css +1 -0
  6. package/webui/high/assets/Announce-BxOu3PDa.js +1 -0
  7. package/webui/high/assets/Billing-9pkW40cw.css +1 -0
  8. package/webui/high/assets/Billing-DkKexnBS.js +1 -0
  9. package/webui/high/assets/Gallery-BUO8AayT.js +1 -0
  10. package/webui/high/assets/Gallery-CvDy0BG_.css +1 -0
  11. package/webui/high/assets/Info-BRpM9vrH.css +1 -0
  12. package/webui/high/assets/Info-jgxOyI48.js +1 -0
  13. package/webui/high/assets/LanguageSwitcher-wcRpxcC2.css +1 -0
  14. package/webui/high/assets/LanguageSwitcher.vue_vue_type_style_index_0_lang-7lwszLYh.js +1 -0
  15. package/webui/high/assets/MainLayout-Cg9w3D6H.js +1 -0
  16. package/webui/high/assets/MainLayout-CtxzU51m.css +1 -0
  17. package/webui/high/assets/Upload-BUllX3F9.css +1 -0
  18. package/webui/high/assets/Upload-BhZe08V8.js +1 -0
  19. package/webui/high/assets/Users-BajKphJ2.css +1 -0
  20. package/webui/high/assets/Users-C-uvafHe.js +1 -0
  21. package/webui/high/assets/_plugin-vue_export-helper-BCo6x5W8.js +1 -0
  22. package/webui/high/assets/api-C3Fyph-A.js +1 -0
  23. package/webui/high/assets/index-6wTg37PL.js +1 -0
  24. package/webui/high/assets/index-BU_CDG5n.js +1 -0
  25. package/webui/high/assets/index-B_eXN_Ka.css +1 -0
  26. package/webui/high/assets/index-BeMdB8li.css +1 -0
  27. package/webui/high/assets/index-BeyjdvRw.css +1 -0
  28. package/webui/high/assets/index-Bqlp4X7Z.css +1 -0
  29. package/webui/high/assets/index-BwGOSVLU.css +1 -0
  30. package/webui/high/assets/index-C0plBGGv.js +1 -0
  31. package/webui/high/assets/index-CG0Cxnu7.js +1 -0
  32. package/webui/high/assets/index-CGTbAKLR.css +1 -0
  33. package/webui/high/assets/index-CTbFCtHG.js +1 -0
  34. package/webui/high/assets/index-CTtQ-PJh.css +1 -0
  35. package/webui/high/assets/index-Ci-5piG7.css +1 -0
  36. package/webui/high/assets/index-DPlPWsqM.js +1 -0
  37. package/webui/high/assets/index-DbeENJC3.css +1 -0
  38. package/webui/high/assets/index-DdwHcYZD.js +1 -0
  39. package/webui/high/assets/index-KMJ_Zaix.js +1 -0
  40. package/webui/high/assets/index-LP7k5pkh.js +1 -0
  41. package/webui/high/assets/index-MthettIa.css +1 -0
  42. package/webui/high/assets/index-_3H0q9yh.css +1 -0
  43. package/webui/high/assets/index-npdYRXyk.js +18 -0
  44. package/webui/high/assets/index-ptOpmqku.js +1 -0
  45. package/webui/high/assets/index-r_gAV5lM.css +1 -0
  46. package/webui/high/assets/index-u4IuHZw8.js +1 -0
  47. package/webui/high/assets/test-BQUWlKVf.css +1 -0
  48. package/webui/high/assets/test-Bt3E-Okh.js +1 -0
  49. package/webui/high/assets/useDeviceScan-CM8xsf7h.js +1 -0
  50. package/webui/high/assets/vue-vendor-BaBirIg_.js +38 -0
  51. package/webui/high/index.html +23 -0
  52. package/webui/high/js/lame.min.js +308 -0
  53. package/webui/high/js/worker-realtime.js +81 -0
  54. package/webui/low/assets/AdminLayout-Dg0cblhW.css +1 -0
  55. package/webui/low/assets/AdminLayout-Dio6Q0f_.js +1 -0
  56. package/webui/low/assets/Announce-2364DXIw.css +1 -0
  57. package/webui/low/assets/Announce-DiogX_-D.js +1 -0
  58. package/webui/low/assets/Billing-9pkW40cw.css +1 -0
  59. package/webui/low/assets/Billing-C42F8wIt.js +1 -0
  60. package/webui/low/assets/Gallery-CvDy0BG_.css +1 -0
  61. package/webui/low/assets/Gallery-DGUAhDtI.js +1 -0
  62. package/webui/low/assets/Info-BRpM9vrH.css +1 -0
  63. package/webui/low/assets/Info-BolVapGU.js +1 -0
  64. package/webui/low/assets/LanguageSwitcher-wcRpxcC2.css +1 -0
  65. package/webui/low/assets/LanguageSwitcher.vue_vue_type_style_index_0_lang-BUO99DZc.js +1 -0
  66. package/webui/low/assets/MainLayout-BmBcNVVu.js +1 -0
  67. package/webui/low/assets/MainLayout-CtxzU51m.css +1 -0
  68. package/webui/low/assets/Upload-BUllX3F9.css +1 -0
  69. package/webui/low/assets/Upload-B_Cx6QMR.js +1 -0
  70. package/webui/low/assets/Users-BajKphJ2.css +1 -0
  71. package/webui/low/assets/Users-an7uFkx4.js +1 -0
  72. package/webui/low/assets/_plugin-vue_export-helper-BCo6x5W8.js +1 -0
  73. package/webui/low/assets/api-C3Fyph-A.js +1 -0
  74. package/webui/low/assets/index-2JKvpOh3.js +1 -0
  75. package/webui/low/assets/index-B_eXN_Ka.css +1 -0
  76. package/webui/low/assets/index-BeMdB8li.css +1 -0
  77. package/webui/low/assets/index-BeyjdvRw.css +1 -0
  78. package/webui/low/assets/index-BoV0S81L.js +1 -0
  79. package/webui/low/assets/index-Bqlp4X7Z.css +1 -0
  80. package/webui/low/assets/index-BuEwLgbU.js +18 -0
  81. package/webui/low/assets/index-BwGOSVLU.css +1 -0
  82. package/webui/low/assets/index-CGTbAKLR.css +1 -0
  83. package/webui/low/assets/index-CSahVaR0.js +1 -0
  84. package/webui/low/assets/index-CTtQ-PJh.css +1 -0
  85. package/webui/low/assets/index-CgyUlqk5.js +1 -0
  86. package/webui/low/assets/index-Ci-5piG7.css +1 -0
  87. package/webui/low/assets/index-Cjg2XVty.js +1 -0
  88. package/webui/low/assets/index-D-BJ_vlf.js +1 -0
  89. package/webui/low/assets/index-D0uan-_I.js +1 -0
  90. package/webui/low/assets/index-DWP2gbuh.js +1 -0
  91. package/webui/low/assets/index-DbeENJC3.css +1 -0
  92. package/webui/low/assets/index-DdPisNCE.js +1 -0
  93. package/webui/low/assets/index-F-Qi4toA.js +1 -0
  94. package/webui/low/assets/index-FUUYrqc8.js +1 -0
  95. package/webui/low/assets/index-MthettIa.css +1 -0
  96. package/webui/low/assets/index-_3H0q9yh.css +1 -0
  97. package/webui/low/assets/index-r_gAV5lM.css +1 -0
  98. package/webui/low/assets/test-BQUWlKVf.css +1 -0
  99. package/webui/low/assets/test-DI2hJTQF.js +1 -0
  100. package/webui/low/assets/useDeviceScan-CM8xsf7h.js +1 -0
  101. package/webui/low/assets/vue-vendor-BaBirIg_.js +38 -0
  102. package/webui/low/index.html +23 -0
  103. package/webui/low/js/lame.min.js +308 -0
  104. package/webui/low/js/worker-realtime.js +81 -0
@@ -0,0 +1 @@
1
+ import{f as e,o as a,n as l,y as s,A as c,u as n,B as t,C as o,W as i,G as u,F as d,z as r,E as v,R as h,N as p,S as m,r as k,c as b,t as g,H as f}from"./vue-vendor-BaBirIg_.js";import{u as w}from"./index-npdYRXyk.js";import{a5 as y,a6 as C,a7 as z,a8 as x,a9 as _,aa as S,ab as M}from"./api-C3Fyph-A.js";import{_ as D}from"./_plugin-vue_export-helper-BCo6x5W8.js";const U={class:"account-page"},I={class:"page-header"},A={class:"page-title"},F={class:"glass-section"},V={class:"section-title"},B={class:"config-grid"},T={class:"config-field"},j=["placeholder"],E={class:"config-field"},L=["placeholder"],N={class:"config-field"},P=["placeholder"],H={class:"config-field"},R=["placeholder"],q={class:"config-field"},G={class:"config-field"},O={class:"perm-grid"},W={class:"perm-item"},J={class:"perm-item"},K={class:"perm-item"},Q={class:"register-area"},X=["disabled"],Y={class:"glass-section"},Z={class:"section-header"},$={class:"section-title"},ee={key:0,class:"table-wrap desktop-table"},ae={class:"data-table"},le={class:"td-pass"},se={class:"pass-cell"},ce={class:"pass-text"},ne=["onClick","title"],te={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},oe={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},ie={class:"perm-toggle"},ue=["checked","onChange"],de={class:"perm-toggle"},re=["checked","onChange"],ve={class:"perm-toggle"},he=["checked","onChange"],pe={class:"td-time"},me={class:"action-btns"},ke=["onClick"],be=["onClick"],ge=["onClick"],fe={key:1,class:"mobile-card-list"},we={class:"user-card-header"},ye={class:"user-card-name"},Ce={class:"user-card-id"},ze={class:"user-card-body"},xe={class:"user-card-row"},_e={class:"user-card-label"},Se={class:"user-card-value pass-cell"},Me={class:"pass-text"},De=["onClick"],Ue={key:0,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},Ie={key:1,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},Ae={key:0,class:"user-card-row"},Fe={class:"user-card-label"},Ve={class:"user-card-value"},Be={key:1,class:"user-card-row"},Te={class:"user-card-label"},je={class:"user-card-value"},Ee={class:"user-card-row"},Le={class:"user-card-label"},Ne={class:"user-card-value user-card-time"},Pe={class:"user-card-perms"},He={class:"perm-item"},Re=["checked","onChange"],qe={class:"perm-item"},Ge=["checked","onChange"],Oe={class:"perm-item"},We=["checked","onChange"],Je={class:"user-card-actions"},Ke=["onClick"],Qe=["onClick"],Xe=["onClick"],Ye={key:2,class:"empty-state"},Ze={class:"modal-box"},$e={class:"modal-body"},ea={class:"modal-actions"},aa={class:"modal-box device-modal-box"},la={class:"modal-title"},sa={key:0,class:"modal-body"},ca={key:1,class:"device-list-modal"},na={class:"device-search-row"},ta=["placeholder"],oa={class:"device-list-scroll"},ia=["checked","onChange"],ua={key:0,class:"empty-state small"},da={class:"modal-actions"},ra=["disabled"],va=D(e({__name:"index",setup(e){const{t:D}=w(),va=k({ziusername:"",zipasswd:"",nickname:"",beizhu:"",level:8}),ha=k(!1),pa=k(!1),ma=k(!1);function ka(){const e=Array(40).fill("0");return ha.value&&(e[0]="1"),pa.value&&(e[1]="1"),ma.value&&(e[2]="1"),e.join("")}const ba=k(!1),ga=k([]),fa=k(new Set);function wa(e){fa.value.has(e)?fa.value.delete(e):fa.value.add(e)}function ya(e){return fa.value.has(e)}function Ca(e){return"•".repeat(Math.min(e.length,12))}const za=k({show:!1,message:""});function xa(e){za.value={show:!0,message:e}}async function _a(){try{const e=await y();!0===e.res&&Array.isArray(e.results)&&(ga.value=e.results)}catch(e){console.error("获取子账户列表失败:",e)}}async function Sa(){if(va.value.ziusername.trim())if(va.value.zipasswd.trim()){ba.value=!0;try{const e=await C({ziusername:va.value.ziusername.trim(),zipasswd:va.value.zipasswd,nickname:va.value.nickname.trim(),beizhu:va.value.beizhu.trim(),level:va.value.level,mask:ka()});!0===e.res?(xa(D("account.addSuccess")),va.value.ziusername="",va.value.zipasswd="",va.value.nickname="",va.value.beizhu="",_a()):xa(e.msg||e.info||D("account.addFailed"))}catch{xa(D("account.addFailed"))}ba.value=!1}else xa(D("account.passwordRequired"));else xa(D("account.usernameRequired"))}function Ma(e,a){return!(!e||a>=e.length)&&"1"===e[a]}async function Da(e,a){const l=!Ma(e.mask,a);try{const s=await x({userid:e.id,zdex:a,zcase:l});if(!0===s.res){const s=e.mask.split("");s[a]=l?"1":"0",e.mask=s.join("")}else xa(s.msg||s.info||D("account.permChangeFailed"))}catch{xa(D("account.permChangeFailed"))}}async function Ua(e){if(confirm(D("account.deleteConfirm",{name:e.user_name})))try{const a=await _(e.id);!0===a.res?(xa(D("account.deleteSuccess")),_a()):xa(a.msg||a.info||D("account.deleteFailed"))}catch{xa(D("account.deleteFailed"))}}const Ia=k({show:!1,loading:!1,saving:!1,ziUserId:0,ziUserToken:"",userName:"",allDevices:[],originalSeeds:[],selectedIds:[],zsIdMap:{}}),Aa=k(""),Fa=b(()=>{if(!Aa.value.trim())return Ia.value.allDevices;const e=Aa.value.toLowerCase();return Ia.value.allDevices.filter(a=>a.label.toLowerCase().includes(e)||String(a.id).includes(e))});async function Va(e){Ia.value={show:!0,loading:!0,saving:!1,ziUserId:e.id,ziUserToken:e.token,userName:e.user_name,allDevices:[],originalSeeds:[],selectedIds:[],zsIdMap:{}},Aa.value="";try{const a=await S({zid:e.id,ztoken:e.token});if(!0===a.res&&Array.isArray(a.dev_info)){Ia.value.allDevices=a.dev_info.map(e=>({id:e.id,label:e.label,key:e.key}));const e=new Set,l={};Array.isArray(a.dev_info_zS)&&a.dev_info_zS.forEach(a=>{e.add(a.device_seed),l[a.device_seed]=a.id}),Ia.value.zsIdMap=l;const s=[];Ia.value.allDevices.forEach(a=>{e.has(a.key)&&s.push(a.id)}),Ia.value.originalSeeds=Array.isArray(a.dev_info_S)?a.dev_info_S:[],Ia.value.selectedIds=s}}catch(a){console.error("获取设备列表失败:",a),xa(D("account.loadDevicesFailed")),Ia.value.show=!1}Ia.value.loading=!1}async function Ba(){Ia.value.saving=!0;const e=new Set;Ia.value.selectedIds.forEach(a=>{const l=Ia.value.allDevices.find(e=>e.id===a);l&&e.add(l.key)});const a=new Set(Ia.value.originalSeeds),l=[];e.forEach(e=>{if(!a.has(e)){const a=Ia.value.allDevices.find(a=>a.key===e);a&&l.push(a.id)}});const s=[],c=Ia.value.zsIdMap;a.forEach(a=>{!e.has(a)&&c[a]&&s.push(c[a])});try{const e=await z({gid:Ia.value.ziUserId,pus_idstr:l.length>0?l.join("|"):"null",dis_idstr:s.length>0?s.join("|"):"null"});!0===e.res?(xa(D("account.editDevicesSuccess")),Ia.value.show=!1):xa(e.msg||e.info||D("account.editDevicesFailed"))}catch{xa(D("account.editDevicesFailed"))}Ia.value.saving=!1}async function Ta(e){if(confirm(D("account.resetTokenConfirm",{name:e.user_name})))try{const a=await M({username:e.user_name,passwd:e.user_pass});!0===a.res?(xa(D("account.resetTokenSuccess")+"\n"+D("account.newToken")+": "+a.token),_a()):xa(a.msg||a.info||D("account.resetTokenFailed"))}catch{xa(D("account.resetTokenFailed"))}}return a(()=>{_a()}),(e,a)=>(g(),l("div",U,[s("div",I,[s("h2",A,c(n(D)("account.title")),1)]),s("div",F,[s("h3",V,c(n(D)("account.addSubUser")),1),s("div",B,[s("div",T,[s("label",null,c(n(D)("account.username")),1),t(s("input",{"onUpdate:modelValue":a[0]||(a[0]=e=>va.value.ziusername=e),class:"form-input",placeholder:n(D)("account.usernamePlaceholder")},null,8,j),[[o,va.value.ziusername]])]),s("div",E,[s("label",null,c(n(D)("account.password")),1),t(s("input",{"onUpdate:modelValue":a[1]||(a[1]=e=>va.value.zipasswd=e),type:"password",class:"form-input",placeholder:n(D)("account.passwordPlaceholder")},null,8,L),[[o,va.value.zipasswd]])]),s("div",N,[s("label",null,c(n(D)("account.nickname")),1),t(s("input",{"onUpdate:modelValue":a[2]||(a[2]=e=>va.value.nickname=e),class:"form-input",placeholder:n(D)("account.nicknamePlaceholder")},null,8,P),[[o,va.value.nickname]])]),s("div",H,[s("label",null,c(n(D)("account.beizhu")),1),t(s("input",{"onUpdate:modelValue":a[3]||(a[3]=e=>va.value.beizhu=e),class:"form-input",placeholder:n(D)("account.beizhuPlaceholder")},null,8,R),[[o,va.value.beizhu]])]),s("div",q,[s("label",null,c(n(D)("account.levelLabel")),1),t(s("select",{"onUpdate:modelValue":a[4]||(a[4]=e=>va.value.level=e),class:"form-input"},[...a[13]||(a[13]=[s("option",{value:8},"8",-1),s("option",{value:6},"6",-1),s("option",{value:4},"4",-1),s("option",{value:2},"2",-1)])],512),[[i,va.value.level]])])]),s("div",G,[s("label",null,c(n(D)("account.permissions")),1),s("div",O,[s("label",W,[t(s("input",{type:"checkbox","onUpdate:modelValue":a[5]||(a[5]=e=>ha.value=e)},null,512),[[u,ha.value]]),s("span",null,c(n(D)("account.permCreateSub")),1)]),s("label",J,[t(s("input",{type:"checkbox","onUpdate:modelValue":a[6]||(a[6]=e=>pa.value=e)},null,512),[[u,pa.value]]),s("span",null,c(n(D)("account.permManageDevice")),1)]),s("label",K,[t(s("input",{type:"checkbox","onUpdate:modelValue":a[7]||(a[7]=e=>ma.value=e)},null,512),[[u,ma.value]]),s("span",null,c(n(D)("account.permUploadFile")),1)])])]),s("div",Q,[s("button",{class:"register-btn",disabled:ba.value,onClick:Sa},c(ba.value?n(D)("account.adding"):n(D)("account.addSubUser")),9,X)])]),s("div",Y,[s("div",Z,[s("h3",$,c(n(D)("account.subAccounts")),1),s("button",{class:"toolbar-btn",onClick:_a},c(n(D)("account.refreshList")),1)]),ga.value.length>0?(g(),l("div",ee,[s("table",ae,[s("thead",null,[s("tr",null,[a[14]||(a[14]=s("th",null,"ID",-1)),s("th",null,c(n(D)("account.username")),1),s("th",null,c(n(D)("account.passwordShow")),1),s("th",null,c(n(D)("account.nickname")),1),s("th",null,c(n(D)("account.beizhu")),1),s("th",null,c(n(D)("account.permCreateSub")),1),s("th",null,c(n(D)("account.permManageDevice")),1),s("th",null,c(n(D)("account.permUploadFile")),1),s("th",null,c(n(D)("account.createTime")),1),s("th",null,c(n(D)("common.actions")),1)])]),s("tbody",null,[(g(!0),l(d,null,r(ga.value,e=>(g(),l("tr",{key:e.id},[s("td",null,c(e.id),1),s("td",null,c(e.user_name),1),s("td",le,[s("span",se,[s("span",ce,c(ya(e.id)?e.user_pass:Ca(e.user_pass)),1),s("button",{class:"eye-btn",onClick:a=>wa(e.id),title:ya(e.id)?"隐藏":"显示"},[ya(e.id)?(g(),l("svg",oe,[...a[16]||(a[16]=[s("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"},null,-1),s("line",{x1:"1",y1:"1",x2:"23",y2:"23"},null,-1)])])):(g(),l("svg",te,[...a[15]||(a[15]=[s("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"},null,-1),s("circle",{cx:"12",cy:"12",r:"3"},null,-1)])]))],8,ne)])]),s("td",null,c(e.nickname),1),s("td",null,c(e.beizhu),1),s("td",null,[s("label",ie,[s("input",{type:"checkbox",checked:Ma(e.mask,0),onChange:a=>Da(e,0)},null,40,ue)])]),s("td",null,[s("label",de,[s("input",{type:"checkbox",checked:Ma(e.mask,1),onChange:a=>Da(e,1)},null,40,re)])]),s("td",null,[s("label",ve,[s("input",{type:"checkbox",checked:Ma(e.mask,2),onChange:a=>Da(e,2)},null,40,he)])]),s("td",pe,c(e.ctime),1),s("td",null,[s("div",me,[s("button",{class:"act-btn act-btn-blue",onClick:a=>Va(e)},[a[17]||(a[17]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"13",height:"13"},[s("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),s("path",{d:"M8 21h8M12 17v4"})],-1)),f(" "+c(n(D)("account.editDevices")),1)],8,ke),s("button",{class:"act-btn act-btn-orange",onClick:a=>Ta(e)},[a[18]||(a[18]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"13",height:"13"},[s("path",{d:"M1 4v6h6"}),s("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})],-1)),f(" "+c(n(D)("account.resetToken")),1)],8,be),s("button",{class:"act-btn act-btn-red",onClick:a=>Ua(e)},[a[19]||(a[19]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"13",height:"13"},[s("polyline",{points:"3 6 5 6 21 6"}),s("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)),f(" "+c(n(D)("common.delete")),1)],8,ge)])])]))),128))])])])):v("",!0),ga.value.length>0?(g(),l("div",fe,[(g(!0),l(d,null,r(ga.value,e=>(g(),l("div",{key:e.id,class:"user-card"},[s("div",we,[s("div",ye,c(e.user_name),1),s("span",Ce,"ID: "+c(e.id),1)]),s("div",ze,[s("div",xe,[s("span",_e,c(n(D)("account.passwordShow")),1),s("span",Se,[s("span",Me,c(ya(e.id)?e.user_pass:Ca(e.user_pass)),1),s("button",{class:"eye-btn",onClick:a=>wa(e.id)},[ya(e.id)?(g(),l("svg",Ie,[...a[21]||(a[21]=[s("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"},null,-1),s("line",{x1:"1",y1:"1",x2:"23",y2:"23"},null,-1)])])):(g(),l("svg",Ue,[...a[20]||(a[20]=[s("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"},null,-1),s("circle",{cx:"12",cy:"12",r:"3"},null,-1)])]))],8,De)])]),e.nickname?(g(),l("div",Ae,[s("span",Fe,c(n(D)("account.nickname")),1),s("span",Ve,c(e.nickname),1)])):v("",!0),e.beizhu?(g(),l("div",Be,[s("span",Te,c(n(D)("account.beizhu")),1),s("span",je,c(e.beizhu),1)])):v("",!0),s("div",Ee,[s("span",Le,c(n(D)("account.createTime")),1),s("span",Ne,c(e.ctime),1)])]),s("div",Pe,[s("label",He,[s("input",{type:"checkbox",checked:Ma(e.mask,0),onChange:a=>Da(e,0)},null,40,Re),s("span",null,c(n(D)("account.permCreateSub")),1)]),s("label",qe,[s("input",{type:"checkbox",checked:Ma(e.mask,1),onChange:a=>Da(e,1)},null,40,Ge),s("span",null,c(n(D)("account.permManageDevice")),1)]),s("label",Oe,[s("input",{type:"checkbox",checked:Ma(e.mask,2),onChange:a=>Da(e,2)},null,40,We),s("span",null,c(n(D)("account.permUploadFile")),1)])]),s("div",Je,[s("button",{class:"act-btn act-btn-blue",onClick:a=>Va(e)},[a[22]||(a[22]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"13",height:"13"},[s("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),s("path",{d:"M8 21h8M12 17v4"})],-1)),f(" "+c(n(D)("account.editDevices")),1)],8,Ke),s("button",{class:"act-btn act-btn-orange",onClick:a=>Ta(e)},[a[23]||(a[23]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"13",height:"13"},[s("path",{d:"M1 4v6h6"}),s("path",{d:"M3.51 15a9 9 0 1 0 2.13-9.36L1 10"})],-1)),f(" "+c(n(D)("account.resetToken")),1)],8,Qe),s("button",{class:"act-btn act-btn-red",onClick:a=>Ua(e)},[a[24]||(a[24]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"13",height:"13"},[s("polyline",{points:"3 6 5 6 21 6"}),s("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)),f(" "+c(n(D)("common.delete")),1)],8,Xe)])]))),128))])):v("",!0),0===ga.value.length?(g(),l("div",Ye,c(n(D)("account.noSubUsers")),1)):v("",!0)]),(g(),h(m,{to:"body"},[za.value.show?(g(),l("div",{key:0,class:"modal-overlay",onClick:a[9]||(a[9]=p(e=>za.value.show=!1,["self"]))},[s("div",Ze,[s("div",$e,c(za.value.message),1),s("div",ea,[s("button",{class:"modal-btn modal-btn-confirm",onClick:a[8]||(a[8]=e=>za.value.show=!1)},c(n(D)("common.confirm")),1)])])])):v("",!0)])),(g(),h(m,{to:"body"},[Ia.value.show?(g(),l("div",{key:0,class:"modal-overlay",onClick:a[12]||(a[12]=p(e=>Ia.value.show=!1,["self"]))},[s("div",aa,[s("div",la,c(n(D)("account.editDevices"))+" - "+c(Ia.value.userName),1),Ia.value.loading?(g(),l("div",sa,c(n(D)("common.loading")),1)):(g(),l("div",ca,[s("div",na,[t(s("input",{"onUpdate:modelValue":a[10]||(a[10]=e=>Aa.value=e),class:"form-input",placeholder:n(D)("account.searchDevice")},null,8,ta),[[o,Aa.value]])]),s("div",oa,[(g(!0),l(d,null,r(Fa.value,e=>(g(),l("label",{key:e.id,class:"device-check-item"},[s("input",{type:"checkbox",checked:Ia.value.selectedIds.includes(e.id),onChange:a=>function(e){const a=Ia.value.selectedIds.indexOf(e);-1===a?Ia.value.selectedIds.push(e):Ia.value.selectedIds.splice(a,1)}(e.id)},null,40,ia),s("span",null,c(e.label),1)]))),128)),0===Fa.value.length?(g(),l("div",ua,c(n(D)("account.noDevices")),1)):v("",!0)])])),s("div",da,[s("button",{class:"modal-btn",onClick:a[11]||(a[11]=e=>Ia.value.show=!1)},c(n(D)("common.cancel")),1),s("button",{class:"modal-btn modal-btn-confirm",disabled:Ia.value.saving,onClick:Ba},c(Ia.value.saving?n(D)("common.loading"):n(D)("common.save")),9,ra)])])])):v("",!0)]))]))}}),[["__scopeId","data-v-c678c4d8"]]);export{va as default};
@@ -0,0 +1 @@
1
+ import{f as e,o as a,n as l,y as s,F as o,z as n,A as i,u as t,m as c,M as d,p as r,B as v,C as u,D as m,E as p,G as g,H as h,N as b,r as y,I as f,J as w,K as k,t as x,L as P}from"./vue-vendor-BaBirIg_.js";import{u as I,a as C,b as M}from"./index-npdYRXyk.js";import{u as S}from"./api-C3Fyph-A.js";import{_ as H}from"./LanguageSwitcher.vue_vue_type_style_index_0_lang-7lwszLYh.js";import{u as B}from"./useDeviceScan-CM8xsf7h.js";import{_ as U}from"./_plugin-vue_export-helper-BCo6x5W8.js";const _={class:"login-container"},V={class:"particles"},D={class:"login-card diablo-card diablo-corner"},F={class:"login-header"},L={class:"logo-container"},E={class:"diablo-logo"},j={class:"logo-particles"},q={class:"login-title diablo-title"},z={class:"subtitle"},A={class:"language-selector"},G=["data-theme","title"],R={class:"login-form"},K={class:"form-group"},N=["placeholder"],O={class:"field-hint"},T={class:"form-group"},J=["placeholder"],$={class:"form-group"},Q=["placeholder"],W={key:0,class:"diablo-error"},X={class:"form-footer"},Y={class:"remember-me"},Z=["disabled"],ee={key:0},ae={key:1,class:"loading-text"},le={class:"login-footer"},se={class:"footer-text"},oe={class:"footer-version"},ne={class:"fire-effect"},ie=["title"],te={class:"dialog-header"},ce={class:"dialog-body"},de={class:"scan-top-bar"},re={class:"scan-hint"},ve=["disabled"],ue={key:0,class:"scan-error"},me={class:"scan-main-layout"},pe={class:"scan-main-left"},ge={key:0,class:"scan-results"},he={class:"scan-results-header"},be={class:"scan-count"},ye={class:"scan-device-table"},fe={class:"scan-table-header"},we={class:"col-media"},ke={class:"col-port"},xe={class:"col-flag"},Pe={class:"col-flag"},Ie={class:"col-dns"},Ce={class:"scan-table-body"},Me={class:"col-idx"},Se={class:"col-ip"},He={class:"col-seed mono"},Be={class:"col-media"},Ue={class:"col-port"},_e={class:"col-flag"},Ve={class:"col-flag"},De={class:"col-dns"},Fe={class:"col-action"},Le=["onClick"],Ee={key:1,class:"scan-empty"},je={class:"scan-console-side"},qe={class:"console-header"},ze={class:"console-body"},Ae={key:0,class:"console-empty"},Ge={class:"dialog-header"},Re={class:"dialog-body"},Ke={class:"config-seed-display"},Ne={class:"config-seed-label"},Oe={class:"config-seed-value mono"},Te={class:"form-group"},Je={class:"toggle-label"},$e={key:0,class:"config-ip-fields"},Qe={class:"form-group"},We={class:"form-group"},Xe={class:"form-group"},Ye={class:"config-row-2col"},Ze={class:"form-group"},ea={class:"form-group"},aa={class:"config-row-2col"},la={class:"form-group"},sa=["placeholder"],oa={class:"form-group"},na={class:"toggle-label"},ia={class:"console-section"},ta={class:"console-header"},ca={class:"console-body"},da={key:0,class:"console-empty"},ra={class:"dialog-footer"},va=U(e({__name:"index",setup(e){const{t:U}=I(),va=w(),ua=k(),ma=C(),pa=M(),{scannedDevices:ga,isScanning:ha,scanError:ba,isElectron:ya,udpLogs:fa,startScan:wa,configureDevice:ka,clearLogs:xa}=B(),Pa=y(!1),Ia=y(!1),Ca=y(!1),Ma=y({seed:"",deviceIP:"",mask:"255.255.255.0",gateway:"",mediaIP:"",mediaPort:12080,autoIP:!0,warmMode:!1,dns:"0.0.0.0"});async function Sa(){Ca.value=!0,await wa()}async function Ha(){await ka({...Ma.value})&&(Ia.value=!1)}const Ba=f({serverHost:"",username:"",passwd:""}),Ua=y(!1),_a=y(""),Va=y(!1),Da=y(""),Fa=y(null),La=y(null);function Ea(e){var a,l;"username"===e?null==(a=Fa.value)||a.focus():"password"===e&&(null==(l=La.value)||l.focus())}function ja(e){let a=e.trim().replace(/\/+$/,"");return a?(/^https?:\/\//i.test(a)||(a="http://"+a),a):""}async function qa(){if(_a.value="",!Ba.serverHost.trim())return void(_a.value=U("clientLogin.hostRequired"));if(!Ba.username)return void(_a.value=U("login.usernameRequired"));if(!Ba.passwd)return void(_a.value=U("login.passwordRequired"));const e=ja(Ba.serverHost),a=window.electronAPI;(null==a?void 0:a.storeSet)?a.storeSet("serverHost",e):localStorage.setItem("serverHost",e),S(e),Ua.value=!0;try{if(await ma.loginUser({username:Ba.username,passwd:Ba.passwd})){Va.value?(null==a?void 0:a.storeSet)?(a.storeSet("rememberedUsername",Ba.username),a.storeSet("rememberedHost",Ba.serverHost),a.storeSet("rememberedPassword",Ba.passwd)):(localStorage.setItem("rememberedUsername",Ba.username),localStorage.setItem("rememberedHost",Ba.serverHost),localStorage.setItem("rememberedPassword",Ba.passwd)):(null==a?void 0:a.storeDelete)?(a.storeDelete("rememberedUsername"),a.storeDelete("rememberedHost"),a.storeDelete("rememberedPassword")):(localStorage.removeItem("rememberedUsername"),localStorage.removeItem("rememberedHost"),localStorage.removeItem("rememberedPassword"));const e=ua.query.redirect||(ma.isAdmin?"/admin":"/");va.push(e)}else _a.value=U("login.invalidCredentials")}catch(l){console.error("登录失败:",l),_a.value=U("login.loginFailed")}finally{Ua.value=!1}}return a(async()=>{const e=window.electronAPI;let a=null,l=null,s=null;(null==e?void 0:e.storeGet)?(a=await e.storeGet("rememberedUsername"),l=await e.storeGet("rememberedHost"),s=await e.storeGet("rememberedPassword")):(a=localStorage.getItem("rememberedUsername"),l=localStorage.getItem("rememberedHost"),s=localStorage.getItem("rememberedPassword")),a&&(Ba.username=a,Va.value=!0),l&&(Ba.serverHost=l,localStorage.setItem("serverHost",ja(l))),s&&(Ba.passwd=s)}),(e,a)=>(x(),l("div",_,[a[51]||(a[51]=s("div",{class:"diablo-bg"},null,-1)),s("div",V,[(x(),l(o,null,n(20,e=>s("div",{key:e,class:"particle",style:P({animationDelay:.2*e+"s"})},null,4)),64))]),s("div",D,[s("div",F,[s("div",L,[s("div",E,[a[31]||(a[31]=s("div",{class:"logo-core"},null,-1)),a[32]||(a[32]=s("div",{class:"logo-ring"},null,-1)),s("div",j,[(x(),l(o,null,n(12,e=>s("div",{key:e,class:"logo-particle",style:P({"--delay":.2*e+"s","--angle":30*e+"deg"})},null,4)),64))])])]),s("h1",q,i(t(U)("login.title")),1),s("div",z,i(t(U)("clientLogin.subtitle")),1)]),a[39]||(a[39]=s("div",{class:"diablo-gold-line"},null,-1)),s("div",A,[c(H),s("div",{class:"theme-toggle","data-theme":t(pa).theme,onClick:a[0]||(a[0]=(...e)=>t(pa).toggleTheme&&t(pa).toggleTheme(...e)),title:"diablo"===t(pa).theme?"切换到白色调":"切换到暗色调"},[...a[33]||(a[33]=[d('<div class="theme-toggle-track" data-v-02aa6d08><svg class="theme-toggle-icon sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-02aa6d08><circle cx="12" cy="12" r="5" data-v-02aa6d08></circle><line x1="12" y1="1" x2="12" y2="3" data-v-02aa6d08></line><line x1="12" y1="21" x2="12" y2="23" data-v-02aa6d08></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64" data-v-02aa6d08></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78" data-v-02aa6d08></line><line x1="1" y1="12" x2="3" y2="12" data-v-02aa6d08></line><line x1="21" y1="12" x2="23" y2="12" data-v-02aa6d08></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36" data-v-02aa6d08></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22" data-v-02aa6d08></line></svg><svg class="theme-toggle-icon moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-02aa6d08><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" data-v-02aa6d08></path></svg><div class="theme-toggle-thumb" data-v-02aa6d08></div></div>',1)])],8,G)]),s("div",R,[s("div",K,[s("div",{class:r(["diablo-input-wrapper",{"input-focused":"host"===Da.value}])},[a[34]||(a[34]=d('<div class="diablo-input-icon" data-v-02aa6d08><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" data-v-02aa6d08><rect x="2" y="3" width="20" height="14" rx="2" ry="2" data-v-02aa6d08></rect><line x1="8" y1="21" x2="16" y2="21" data-v-02aa6d08></line><line x1="12" y1="17" x2="12" y2="21" data-v-02aa6d08></line></svg></div>',1)),v(s("input",{"onUpdate:modelValue":a[1]||(a[1]=e=>Ba.serverHost=e),type:"text",class:"diablo-input",placeholder:t(U)("clientLogin.hostPlaceholder"),onFocus:a[2]||(a[2]=e=>Da.value="host"),onBlur:a[3]||(a[3]=e=>Da.value=""),onKeyup:a[4]||(a[4]=m(e=>Ea("username"),["enter"]))},null,40,N),[[u,Ba.serverHost]])],2),s("div",O,i(t(U)("clientLogin.hostHint")),1)]),s("div",T,[s("div",{class:r(["diablo-input-wrapper",{"input-focused":"username"===Da.value}])},[a[35]||(a[35]=s("div",{class:"diablo-input-icon"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("circle",{cx:"12",cy:"8",r:"4"}),s("path",{d:"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"})])],-1)),v(s("input",{ref_key:"usernameRef",ref:Fa,"onUpdate:modelValue":a[5]||(a[5]=e=>Ba.username=e),type:"text",class:"diablo-input",placeholder:t(U)("login.usernamePlaceholder"),autocomplete:"username",onFocus:a[6]||(a[6]=e=>Da.value="username"),onBlur:a[7]||(a[7]=e=>Da.value=""),onKeyup:a[8]||(a[8]=m(e=>Ea("password"),["enter"]))},null,40,J),[[u,Ba.username]])],2)]),s("div",$,[s("div",{class:r(["diablo-input-wrapper",{"input-focused":"password"===Da.value}])},[a[36]||(a[36]=s("div",{class:"diablo-input-icon"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),s("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})])],-1)),v(s("input",{ref_key:"passwordRef",ref:La,"onUpdate:modelValue":a[9]||(a[9]=e=>Ba.passwd=e),type:"password",class:"diablo-input",placeholder:t(U)("login.passwordPlaceholder"),autocomplete:"current-password",onFocus:a[10]||(a[10]=e=>Da.value="password"),onBlur:a[11]||(a[11]=e=>Da.value=""),onKeyup:m(qa,["enter"])},null,40,Q),[[u,Ba.passwd]])],2)]),_a.value?(x(),l("div",W,i(_a.value),1)):p("",!0),s("div",X,[s("label",Y,[v(s("input",{"onUpdate:modelValue":a[12]||(a[12]=e=>Va.value=e),type:"checkbox"},null,512),[[g,Va.value]]),s("span",null,i(t(U)("login.rememberMe")),1)])]),s("button",{class:"diablo-btn login-btn",disabled:Ua.value,onClick:qa},[Ua.value?(x(),l("span",ae,[a[37]||(a[37]=s("span",{class:"diablo-loading"},null,-1)),h(" "+i(t(U)("login.logging")),1)])):(x(),l("span",ee,i(t(U)("login.loginButton")),1))],8,Z)]),s("div",le,[s("div",se," © 2024 "+i(t(U)("common.appName")),1),a[38]||(a[38]=s("div",{class:"footer-divider"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("path",{d:"M6 2l-4 4h4l-4 4h4l-4 4h4l-4 4h4l-4 4"}),s("path",{d:"M18 22l4-4h-4l4-4h-4l4-4h-4l4-4h-4l4-4h-4z"})])],-1)),s("div",oe,i(t(U)("settings.version"))+" "+i(t("2.0.40")),1)])]),s("div",ne,[(x(),l(o,null,n(10,e=>s("div",{key:e,class:"flame",style:P({animationDelay:.3*e+"s"})},null,4)),64))]),t(ya)?(x(),l("button",{key:0,class:"login-scan-btn",onClick:a[13]||(a[13]=e=>Pa.value=!0),title:t(U)("devices.scanDevices")},[...a[40]||(a[40]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("circle",{cx:"11",cy:"11",r:"8"}),s("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)])],8,ie)):p("",!0),Pa.value?(x(),l("div",{key:1,class:"dialog-overlay",onClick:a[17]||(a[17]=e=>Pa.value=!1)},[s("div",{class:"dialog scan-dialog",onClick:a[16]||(a[16]=b(()=>{},["stop"]))},[s("div",te,[a[41]||(a[41]=s("div",{class:"scan-header-icon"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("circle",{cx:"12",cy:"12",r:"3"}),s("path",{d:"M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"})])],-1)),s("h3",null,i(t(U)("devices.deviceScan")),1),s("button",{class:"close-btn",onClick:a[14]||(a[14]=e=>Pa.value=!1)},"×")]),s("div",ce,[s("div",de,[s("p",re,i(t(U)("devices.scanHint")),1),s("button",{class:"diablo-button scan-action-btn",onClick:Sa,disabled:t(ha)},i(t(ha)?t(U)("devices.scanning"):t(U)("devices.scanButton")),9,ve)]),t(ba)?(x(),l("div",ue,i(t(ba)),1)):p("",!0),s("div",me,[s("div",pe,[t(ga).length>0?(x(),l("div",ge,[s("div",he,[s("h4",null,[h(i(t(U)("devices.scannedDevices"))+" ",1),s("span",be,i(t(ga).length),1)])]),s("div",ye,[s("div",fe,[a[42]||(a[42]=s("span",{class:"col-idx"},"#",-1)),a[43]||(a[43]=s("span",{class:"col-ip"},"IP",-1)),a[44]||(a[44]=s("span",{class:"col-seed"},"SEED",-1)),s("span",we,i(t(U)("devices.mediaServer")),1),s("span",ke,i(t(U)("devices.mediaPort")),1),s("span",xe,i(t(U)("devices.autoIP")),1),s("span",Pe,i(t(U)("devices.warmMode")),1),s("span",Ie,i(t(U)("devices.dns")),1),a[45]||(a[45]=s("span",{class:"col-action"},null,-1))]),s("div",Ce,[(x(!0),l(o,null,n(t(ga),(e,o)=>(x(),l("div",{key:e.seed,class:"scan-table-row"},[s("span",Me,i(o+1),1),s("span",Se,i(e.ip),1),s("span",He,i(e.seed),1),s("span",Be,i(e.mediaIP),1),s("span",Ue,i(e.mediaPort),1),s("span",_e,[s("span",{class:r(["tag",e.autoIP?"tag-on":"tag-off"])},i(e.autoIP?"ON":"OFF"),3)]),s("span",Ve,[s("span",{class:r(["tag",e.warmMode?"tag-on":"tag-off"])},i(e.warmMode?"ON":"OFF"),3)]),s("span",De,i(e.dns),1),s("span",Fe,[s("button",{class:"config-btn",onClick:b(a=>function(e){Ma.value={seed:e.seed,deviceIP:e.ip,mask:e.mask||"255.255.255.0",gateway:e.gateway||"",mediaIP:e.mediaIP||"",mediaPort:e.mediaPort||12080,autoIP:e.autoIP,warmMode:e.warmMode,dns:e.dns||"0.0.0.0"},Ia.value=!0}(e),["stop"])},[...a[46]||(a[46]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"12",height:"12"},[s("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),s("circle",{cx:"12",cy:"12",r:"3"})],-1)])],8,Le)])]))),128))])])])):(x(),l("div",Ee,[a[47]||(a[47]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5",width:"32",height:"32"},[s("circle",{cx:"11",cy:"11",r:"8"}),s("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})],-1)),s("p",null,i(t(U)("devices.noDeviceFound")),1)]))]),s("div",je,[s("div",qe,[s("h4",null,i(t(U)("devices.console")),1),s("button",{class:"console-clear-btn",onClick:a[15]||(a[15]=(...e)=>t(xa)&&t(xa)(...e))},i(t(U)("devices.clearConsole")),1)]),s("div",ze,[0===t(fa).length?(x(),l("div",Ae,i(t(U)("devices.consoleEmpty")),1)):p("",!0),(x(!0),l(o,null,n(t(fa),(e,a)=>(x(),l("div",{key:a,class:r(["console-line","log-"+e.type])},i(e.msg),3))),128))])])])])])])):p("",!0),Ia.value?(x(),l("div",{key:2,class:"dialog-overlay",onClick:a[30]||(a[30]=e=>Ia.value=!1)},[s("div",{class:"dialog scan-config-dialog",onClick:a[29]||(a[29]=b(()=>{},["stop"]))},[s("div",Ge,[a[48]||(a[48]=s("div",{class:"scan-header-icon config-icon"},[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),s("circle",{cx:"12",cy:"12",r:"3"})])],-1)),s("h3",null,i(t(U)("devices.scanConfigTitle")),1),s("button",{class:"close-btn",onClick:a[18]||(a[18]=e=>Ia.value=!1)},"×")]),s("div",Re,[s("div",Ke,[s("span",Ne,i(t(U)("devices.seed")),1),s("span",Oe,i(Ma.value.seed),1)]),s("div",Te,[s("label",Je,[s("span",null,i(t(U)("devices.autoIP")),1),s("span",{class:r(["toggle-switch",{on:Ma.value.autoIP}]),onClick:a[19]||(a[19]=e=>Ma.value.autoIP=!Ma.value.autoIP)},[...a[49]||(a[49]=[s("span",{class:"toggle-knob"},null,-1)])],2)])]),Ma.value.autoIP?p("",!0):(x(),l("div",$e,[s("div",Qe,[s("label",null,i(t(U)("devices.deviceIP")),1),v(s("input",{class:"form-input","onUpdate:modelValue":a[20]||(a[20]=e=>Ma.value.deviceIP=e),placeholder:"192.168.1.100"},null,512),[[u,Ma.value.deviceIP]])]),s("div",We,[s("label",null,i(t(U)("devices.subnetMask")),1),v(s("input",{class:"form-input","onUpdate:modelValue":a[21]||(a[21]=e=>Ma.value.mask=e),placeholder:"255.255.255.0"},null,512),[[u,Ma.value.mask]])]),s("div",Xe,[s("label",null,i(t(U)("devices.gateway")),1),v(s("input",{class:"form-input","onUpdate:modelValue":a[22]||(a[22]=e=>Ma.value.gateway=e),placeholder:"192.168.1.1"},null,512),[[u,Ma.value.gateway]])])])),s("div",Ye,[s("div",Ze,[s("label",null,i(t(U)("devices.mediaServer")),1),v(s("input",{class:"form-input","onUpdate:modelValue":a[23]||(a[23]=e=>Ma.value.mediaIP=e),placeholder:"192.168.1.100"},null,512),[[u,Ma.value.mediaIP]])]),s("div",ea,[s("label",null,i(t(U)("devices.mediaPort")),1),v(s("input",{class:"form-input","onUpdate:modelValue":a[24]||(a[24]=e=>Ma.value.mediaPort=e),type:"number",min:"1",max:"65535"},null,512),[[u,Ma.value.mediaPort,void 0,{number:!0}]])])]),s("div",aa,[s("div",la,[s("label",null,i(t(U)("devices.dns")),1),v(s("input",{class:"form-input","onUpdate:modelValue":a[25]||(a[25]=e=>Ma.value.dns=e),placeholder:t(U)("devices.dnsPlaceholder")},null,8,sa),[[u,Ma.value.dns]])]),s("div",oa,[s("label",na,[s("span",null,i(t(U)("devices.warmMode")),1),s("span",{class:r(["toggle-switch",{on:Ma.value.warmMode}]),onClick:a[26]||(a[26]=e=>Ma.value.warmMode=!Ma.value.warmMode)},[...a[50]||(a[50]=[s("span",{class:"toggle-knob"},null,-1)])],2)])])]),s("div",ia,[s("div",ta,[s("h4",null,i(t(U)("devices.console")),1),s("button",{class:"console-clear-btn",onClick:a[27]||(a[27]=(...e)=>t(xa)&&t(xa)(...e))},i(t(U)("devices.clearConsole")),1)]),s("div",ca,[0===t(fa).length?(x(),l("div",da,i(t(U)("devices.consoleEmpty")),1)):p("",!0),(x(!0),l(o,null,n(t(fa),(e,a)=>(x(),l("div",{key:a,class:r(["console-line","log-"+e.type])},i(e.msg),3))),128))])])]),s("div",ra,[s("button",{class:"cancel-btn diablo-button-secondary",onClick:a[28]||(a[28]=e=>Ia.value=!1)},i(t(U)("common.cancel")),1),s("button",{class:"confirm-btn diablo-button",onClick:Ha},i(t(U)("devices.applyConfig")),1)])])])):p("",!0)]))}}),[["__scopeId","data-v-02aa6d08"]]);export{va as default};
@@ -0,0 +1 @@
1
+ .device-manage[data-v-ffaf74a6]{padding:20px;background:transparent;flex:1;display:flex;flex-direction:column;min-height:0}.content-area[data-v-ffaf74a6]{flex:1;display:flex;flex-direction:column;min-height:0;overflow:auto;max-height:calc(100vh - 140px)}.list-layout[data-v-ffaf74a6]{width:fit-content;max-width:100%}.page-header[data-v-ffaf74a6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-shrink:0}.device-search-bar[data-v-ffaf74a6]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;margin-bottom:16px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.device-search-bar .search-icon[data-v-ffaf74a6]{width:18px;height:18px;flex-shrink:0;color:var(--diablo-text-muted)}.device-search-bar .search-input[data-v-ffaf74a6]{flex:1;background:none;border:none;outline:none;color:var(--diablo-text);font-size:14px;font-family:inherit}.device-search-bar .search-input[data-v-ffaf74a6]::placeholder{color:var(--diablo-text-muted);opacity:.6}.device-search-bar .search-clear[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:center;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:50%;width:24px;height:24px;color:var(--diablo-text-muted);cursor:pointer;flex-shrink:0;padding:0}.device-search-bar .search-clear[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);color:var(--diablo-text)}.header-actions[data-v-ffaf74a6]{display:flex;gap:8px;align-items:center}.refresh-btn[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:center;padding:8px;background:transparent;border:1px solid transparent;border-radius:8px;color:var(--diablo-text-muted);cursor:pointer;transition:all .2s ease}.refresh-btn[data-v-ffaf74a6]:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border)}.refresh-btn[data-v-ffaf74a6]:disabled{opacity:.5;cursor:not-allowed}.page-title[data-v-ffaf74a6]{font-size:20px;font-weight:600;color:var(--diablo-text);margin:0;letter-spacing:-.3px}.add-btn[data-v-ffaf74a6]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.add-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.add-btn svg[data-v-ffaf74a6]{width:16px;height:16px}.batch-volume-btn[data-v-ffaf74a6]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.batch-volume-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow);transform:translateY(-1px)}.batch-volume-btn svg[data-v-ffaf74a6]{width:16px;height:16px}.device-list[data-v-ffaf74a6]{flex:1;overflow-y:auto;min-height:0}.view-mode-toggle[data-v-ffaf74a6]{display:flex;gap:4px;border:1px solid var(--glass-border);border-radius:12px;padding:4px;margin-right:12px;background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.view-mode-btn[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;border-radius:8px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.view-mode-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);box-shadow:var(--glass-shadow-hover),0 0 8px var(--glass-border-glow)}.view-mode-btn.active[data-v-ffaf74a6]{background:var(--glass-bg-active);color:var(--diablo-text);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.view-mode-btn.active[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover)}.view-mode-btn svg[data-v-ffaf74a6]{width:18px;height:18px}.list-view[data-v-ffaf74a6]{max-width:100%}.device-table-grid[data-v-ffaf74a6]{display:grid;grid-template-columns:repeat(13,auto);gap:0;padding:0;align-items:stretch}.device-row[data-v-ffaf74a6]{display:contents}.cell[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:flex-start;white-space:nowrap}.device-header-row .cell[data-v-ffaf74a6]{font-size:11px;font-weight:600;color:var(--diablo-text-muted);letter-spacing:-.2px;background:var(--diablo-bg-dark);border-bottom:1px solid var(--glass-border);padding:10px 16px;backdrop-filter:blur(var(--glass-blur)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.4);position:sticky;top:0;z-index:10}.device-header-row .cell[data-v-ffaf74a6]:first-child{border-radius:8px 0 0}.device-header-row .cell[data-v-ffaf74a6]:last-child{border-radius:0 8px 0 0}.device-data-row .cell[data-v-ffaf74a6]{font-size:13px;color:var(--diablo-text);background:transparent;border-bottom:1px solid var(--glass-border);padding:8px 16px;transition:background .15s ease}.device-data-row:hover .cell[data-v-ffaf74a6]{background:var(--glass-bg-hover)}.device-data-row.selected .cell[data-v-ffaf74a6]{background:var(--glass-bg-active)}.device-data-row.offline .cell[data-v-ffaf74a6]{opacity:.6}.device-data-row.playing .cell[data-v-ffaf74a6]{background:#0a84ff0d}.cell-select input[type=checkbox][data-v-ffaf74a6]{width:16px;height:16px;cursor:pointer;accent-color:var(--diablo-primary)}.field-value{@keyframes indicatorPulse-ffaf74a6{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 12px #2ecc71cc}50%{opacity:.7;transform:scale(1.3);box-shadow:0 0 16px #2ecc71}}@keyframes particleOrbit-ffaf74a6{0%{transform:rotate(0) scale(1);opacity:.8}25%{transform:rotate(90deg) scale(1.1);opacity:.6}50%{transform:rotate(180deg) scale(1);opacity:1}75%{transform:rotate(270deg) scale(1.1);opacity:.6}to{transform:rotate(360deg) scale(1);opacity:.8}}@keyframes rippleEffect-ffaf74a6{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}50%{transform:translate(-50%,-50%) scale(1.5);opacity:.5}to{transform:translate(-50%,-50%) scale(2);opacity:0}}@keyframes onlineGlow-ffaf74a6{0%,to{box-shadow:0 0 4px #2ecc7133}50%{box-shadow:0 0 8px #2ecc7166}}@keyframes pulse-ffaf74a6{0%,to{opacity:1}50%{opacity:.6}}@keyframes playingPulse-ffaf74a6{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}}.field-value[data-v-ffaf74a6]{font-size:13px;color:var(--diablo-text);font-weight:500}.field-value.status-badge[data-v-ffaf74a6]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;white-space:nowrap;min-width:fit-content;transition:all .4s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-inner-glow)}.field-value.status-badge .status-indicator[data-v-ffaf74a6]{width:8px;height:8px;border-radius:50%;display:inline-block}.field-value.status-badge.online[data-v-ffaf74a6]{background:#2ecc7133;color:#2ecc71;border:1px solid rgba(46,204,113,.5);animation:onlineGlow-ffaf74a6 2s ease-in-out infinite}.field-value.status-badge.online .status-indicator[data-v-ffaf74a6]{background:#2ecc71;box-shadow:0 0 12px #2ecc71cc;animation:indicatorPulse-ffaf74a6 1.5s ease-in-out infinite}.field-value.status-badge.playing[data-v-ffaf74a6]{background:#3498db33;color:#3498db;border:1px solid rgba(52,152,219,.5);position:relative;overflow:visible}.field-value.status-badge.playing .status-indicator[data-v-ffaf74a6]{background:#3498db;box-shadow:0 0 12px #3498dbcc;animation:playingPulse-ffaf74a6 1.2s ease-in-out infinite;position:relative}.field-value.status-badge.playing .status-indicator[data-v-ffaf74a6]:before,.field-value.status-badge.playing .status-indicator[data-v-ffaf74a6]:after{content:"";position:absolute;border-radius:50%;background:#3498db;animation:particleOrbit-ffaf74a6 3s linear infinite}.field-value.status-badge.playing .status-indicator[data-v-ffaf74a6]:before{width:4px;height:4px;top:-8px;left:-8px;opacity:.8}.field-value.status-badge.playing .status-indicator[data-v-ffaf74a6]:after{width:3px;height:3px;top:-6px;right:-6px;opacity:.6;animation-delay:1s}.field-value.status-badge.playing[data-v-ffaf74a6]:before{content:"";position:absolute;width:20px;height:20px;border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);border:1px solid rgba(52,152,219,.3);animation:rippleEffect-ffaf74a6 2s ease-out infinite;pointer-events:none}.field-value.status-badge.offline[data-v-ffaf74a6]{background:#95a5a626;color:#95a5a6;border:1px solid rgba(149,165,166,.3)}.field-value.status-badge.offline .status-indicator[data-v-ffaf74a6]{background:#95a5a6;animation:none}.field-value.status-badge.never[data-v-ffaf74a6]{background:#7f8c8d26;color:#7f8c8d;border:1px solid rgba(127,140,141,.3)}.field-value.status-badge.never .status-indicator[data-v-ffaf74a6]{background:#7f8c8d;animation:none}.field-value.status-badge.expired[data-v-ffaf74a6]{background:#e74c3c26;color:#e74c3c;border:1px solid rgba(231,76,60,.3)}.field-value.status-badge.expired .status-indicator[data-v-ffaf74a6]{background:#e74c3c;animation:none}.field-value.status-badge.unknown[data-v-ffaf74a6]{background:#bdc3c726;color:#bdc3c7;border:1px solid rgba(189,195,199,.3)}.field-value.status-badge.unknown .status-indicator[data-v-ffaf74a6]{background:#bdc3c7;animation:none}.field-value.serial-text[data-v-ffaf74a6]{font-family:Courier New,monospace;font-size:12px;color:var(--glass-border-glow)}.device-select input[type=checkbox][data-v-ffaf74a6]{width:18px;height:18px;cursor:pointer;accent-color:var(--glass-border-glow)}.device-actions[data-v-ffaf74a6]{display:flex;gap:4px}.sort-btn[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:center;padding:4px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.sort-btn[data-v-ffaf74a6]:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--glass-border-glow);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-2px)}.sort-btn[data-v-ffaf74a6]:active:not(:disabled){transform:translateY(0)}.sort-btn:disabled[data-v-ffaf74a6]{opacity:.3;cursor:not-allowed}.sort-btn:disabled[data-v-ffaf74a6]:hover{transform:none}.sort-btn svg[data-v-ffaf74a6]{width:16px;height:16px}.action-btn[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:center;padding:8px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94);white-space:nowrap}.action-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-1px)}.action-btn svg[data-v-ffaf74a6]{width:20px;height:20px}.action-btn.volume-btn[data-v-ffaf74a6]:hover{border-color:var(--glass-border-glow);color:var(--glass-border-glow);background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.action-btn.rename-btn[data-v-ffaf74a6]:hover{border-color:var(--glass-border-hover);color:var(--glass-border-glow);background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.action-btn.delete-btn[data-v-ffaf74a6]:hover{border-color:var(--glass-border-hover);color:#e74c3c;background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.action-btn.delete-btn[data-v-ffaf74a6]{z-index:1;position:relative}.debug-sound-btn[data-v-ffaf74a6]{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;border:1px solid var(--glass-border);border-radius:10px;font-size:12px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94);white-space:nowrap;background:var(--glass-bg)}.debug-sound-btn.open[data-v-ffaf74a6]{border-color:#e74c3c;background:var(--glass-bg-hover);color:#e74c3c;box-shadow:var(--glass-shadow-hover),0 0 12px #e74c3c4d}.debug-sound-btn.open[data-v-ffaf74a6]:hover{background:var(--glass-bg-active);transform:translateY(-1px);box-shadow:var(--glass-shadow-hover),0 0 16px #e74c3c66}.debug-sound-btn.close[data-v-ffaf74a6]{border-color:var(--glass-border);background:var(--glass-bg);color:var(--diablo-text-muted);opacity:.6}.debug-sound-btn.close[data-v-ffaf74a6]:hover{opacity:1}.dialog-overlay[data-v-ffaf74a6]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.dialog[data-v-ffaf74a6]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;width:100%;max-width:480px;-webkit-backdrop-filter:blur(var(--glass-blur-heavy));backdrop-filter:blur(var(--glass-blur-heavy));box-shadow:var(--glass-shadow),var(--glass-inner-glow),0 20px 60px #0000004d;animation:dialogSlideIn-ffaf74a6 .3s ease}@keyframes dialogSlideIn-ffaf74a6{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.dialog-header[data-v-ffaf74a6]{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid var(--glass-border)}.dialog-header h3[data-v-ffaf74a6]{margin:0;font-size:18px;color:var(--diablo-text)}.close-btn[data-v-ffaf74a6]{background:transparent;border:none;color:var(--diablo-text-muted);cursor:pointer;padding:4px;border-radius:8px;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.close-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);box-shadow:var(--glass-inner-glow)}.dialog-body[data-v-ffaf74a6]{padding:24px}.form-group[data-v-ffaf74a6]{margin-bottom:20px}.form-group label[data-v-ffaf74a6]{display:block;margin-bottom:8px;font-size:14px;color:var(--diablo-text);font-weight:500}.form-group input[data-v-ffaf74a6]{width:100%;padding:12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--diablo-text);font-size:14px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94);box-sizing:border-box}.form-group input[data-v-ffaf74a6]::placeholder{color:var(--diablo-text-muted)}.form-group input[data-v-ffaf74a6]:focus{outline:none;border-color:var(--glass-border-hover);box-shadow:0 0 0 3px var(--glass-border-glow),var(--glass-inner-glow)}.form-group input.error[data-v-ffaf74a6]{border-color:#e74c3c}.form-group input.error[data-v-ffaf74a6]:focus{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c33,var(--glass-inner-glow)}.form-group .error-text[data-v-ffaf74a6]{display:block;margin-top:6px;font-size:12px;color:#e74c3c}.form-group .form-hint[data-v-ffaf74a6]{margin:8px 0 0;font-size:12px;color:var(--diablo-text-muted);line-height:1.5}.form-group .hint-detail[data-v-ffaf74a6]{display:block;margin-top:4px;color:var(--glass-border-glow);font-style:italic}.form-group .test-fill-btn[data-v-ffaf74a6]{margin-top:8px;padding:8px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--glass-border-glow);font-size:12px;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.form-group .test-fill-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-1px)}.dialog-footer[data-v-ffaf74a6]{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid var(--glass-border)}.cancel-btn[data-v-ffaf74a6],.confirm-btn[data-v-ffaf74a6]{padding:12px 24px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.cancel-btn[data-v-ffaf74a6]:disabled,.confirm-btn[data-v-ffaf74a6]:disabled{opacity:.6;cursor:not-allowed}.cancel-btn[data-v-ffaf74a6]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text)}.cancel-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 8px var(--glass-border-glow)}.confirm-btn[data-v-ffaf74a6]{background:var(--glass-bg-hover);color:var(--diablo-text);border:1px solid var(--glass-border-hover);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.confirm-btn[data-v-ffaf74a6]:hover:not(:disabled){background:var(--glass-bg-active);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.volume-dialog[data-v-ffaf74a6]{max-width:400px}.batch-volume-dialog[data-v-ffaf74a6]{max-width:500px}.selected-devices-info[data-v-ffaf74a6]{display:flex;align-items:center;gap:12px;padding:15px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;margin-bottom:20px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-inner-glow)}.info-label[data-v-ffaf74a6]{font-size:14px;color:var(--diablo-text);font-weight:500}.info-count[data-v-ffaf74a6]{font-size:18px;font-weight:700;color:var(--glass-border-glow)}.volume-control[data-v-ffaf74a6]{padding:20px 0}.volume-display[data-v-ffaf74a6]{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.volume-value[data-v-ffaf74a6]{font-size:48px;font-weight:700;color:var(--glass-border-glow)}.volume-range[data-v-ffaf74a6]{font-size:14px;color:var(--diablo-text-muted);margin-top:8px}.volume-slider[data-v-ffaf74a6]{width:100%;height:8px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:4px;outline:none;-webkit-appearance:none}:is()[data-v-ffaf74a6]{-webkit-appearance:none;width:20px;height:20px;background:var(--glass-border-glow);border-radius:50%;cursor:pointer;transition:all .2s ease;box-shadow:var(--glass-shadow),0 0 8px var(--glass-border-glow)}:is()[data-v-ffaf74a6]:hover{transform:scale(1.2);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow)}.volume-slider[data-v-ffaf74a6]::-moz-range-thumb{width:20px;height:20px;background:var(--glass-border-glow);border-radius:50%;cursor:pointer;border:none;box-shadow:var(--glass-shadow),0 0 8px var(--glass-border-glow)}.volume-labels[data-v-ffaf74a6]{display:flex;justify-content:space-between;margin-top:12px;color:var(--diablo-text-muted);font-size:12px}.volume-input[data-v-ffaf74a6]{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:20px;border-top:1px solid var(--glass-border)}.volume-input label[data-v-ffaf74a6]{font-size:14px;color:var(--diablo-text);font-weight:500}.volume-number-input[data-v-ffaf74a6]{flex:1;padding:10px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--diablo-text);font-size:16px;font-weight:600;text-align:center;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.volume-number-input[data-v-ffaf74a6]:focus{outline:none;border-color:var(--glass-border-hover);box-shadow:0 0 0 3px var(--glass-border-glow),var(--glass-inner-glow)}.loading-mask[data-v-ffaf74a6]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.loading-spinner[data-v-ffaf74a6]{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:var(--glass-border-glow);border-radius:50%;animation:spin-ffaf74a6 1s linear infinite;box-shadow:0 0 16px var(--glass-border-glow)}@keyframes spin-ffaf74a6{to{transform:rotate(360deg)}}.custom-message[data-v-ffaf74a6]{position:fixed;top:24px;left:50%;transform:translate(-50%) translateY(-20px);padding:12px 24px;border-radius:12px;font-size:14px;font-weight:500;z-index:9999;opacity:0;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));transition:all .4s cubic-bezier(.25,.46,.45,.94);box-shadow:var(--glass-shadow),var(--glass-inner-glow);border:1px solid var(--glass-border)}.custom-message.show[data-v-ffaf74a6]{opacity:1;transform:translate(-50%) translateY(0)}.custom-message.custom-message-success[data-v-ffaf74a6]{background:var(--glass-bg-hover);color:#2ecc71;border-color:#2ecc7180}.custom-message.custom-message-error[data-v-ffaf74a6]{background:var(--glass-bg-hover);color:#e74c3c;border-color:#e74c3c80}.custom-message.custom-message-warning[data-v-ffaf74a6]{background:var(--glass-bg-hover);color:var(--glass-border-glow);border-color:var(--glass-border-hover)}.confirm-overlay[data-v-ffaf74a6]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}.confirm-dialog[data-v-ffaf74a6]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;width:90%;max-width:420px;-webkit-backdrop-filter:blur(var(--glass-blur-heavy));backdrop-filter:blur(var(--glass-blur-heavy));box-shadow:var(--glass-shadow),var(--glass-inner-glow),0 20px 60px #0000004d;animation:dialogSlideIn-ffaf74a6 .3s ease}.confirm-header[data-v-ffaf74a6]{padding:20px;border-bottom:1px solid var(--glass-border)}.confirm-header h3[data-v-ffaf74a6]{margin:0;font-size:18px;color:var(--diablo-text)}.confirm-body[data-v-ffaf74a6]{padding:24px}.confirm-body p[data-v-ffaf74a6]{margin:0;font-size:15px;color:var(--diablo-text);line-height:1.6}.confirm-footer[data-v-ffaf74a6]{display:flex;gap:12px;justify-content:flex-end;padding:20px;border-top:1px solid var(--glass-border)}.confirm-cancel[data-v-ffaf74a6],.confirm-ok[data-v-ffaf74a6]{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.confirm-cancel[data-v-ffaf74a6]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text)}.confirm-cancel[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 8px var(--glass-border-glow)}.confirm-ok[data-v-ffaf74a6]{background:var(--glass-bg-hover);color:var(--diablo-text);border:1px solid var(--glass-border-hover);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.confirm-ok[data-v-ffaf74a6]:hover{background:var(--glass-bg-active);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.debug-option-btn[data-v-ffaf74a6]{padding:12px 24px;margin:0 8px 8px 0;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--diablo-text);border-radius:10px;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94);font-size:14px;font-weight:500}.debug-option-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow)}.debug-option-btn.active[data-v-ffaf74a6]{background:var(--glass-bg-active);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.debug-option-btn.active[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.debug-option-btn.error[data-v-ffaf74a6]{border-color:#e74c3c;color:#e74c3c}.debug-option-btn.error[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover)}.card-view[data-v-ffaf74a6]{display:block;margin-top:16px}.card-grid[data-v-ffaf74a6]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.device-card[data-v-ffaf74a6]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;overflow:hidden;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow),var(--glass-inner-glow);transition:all .4s cubic-bezier(.25,.46,.45,.94);cursor:pointer}.device-card[data-v-ffaf74a6]:hover{border-color:var(--glass-border-hover);transform:translateY(-4px);box-shadow:var(--glass-shadow-hover),0 0 20px var(--glass-border-glow)}.device-card.offline[data-v-ffaf74a6]{opacity:.6}.device-card.playing[data-v-ffaf74a6]{border-color:var(--glass-border-glow);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)}.device-card.selected[data-v-ffaf74a6]{border-color:var(--glass-border-hover);background:var(--glass-bg-active);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow)}.card-header[data-v-ffaf74a6]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--glass-bg);border-bottom:1px solid var(--glass-border)}.card-select input[type=checkbox][data-v-ffaf74a6]{width:18px;height:18px;cursor:pointer;accent-color:var(--glass-border-glow)}.card-actions[data-v-ffaf74a6]{display:flex;gap:4px}.card-body[data-v-ffaf74a6]{padding:16px}.card-info-row[data-v-ffaf74a6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-info-row[data-v-ffaf74a6]:last-child{margin-bottom:0}.info-label[data-v-ffaf74a6]{font-size:12px;color:var(--diablo-text-muted);font-weight:500}.info-value[data-v-ffaf74a6]{font-size:13px;color:var(--diablo-text);font-weight:600;word-break:break-all}.info-value.serial-text[data-v-ffaf74a6]{font-family:Courier New,monospace;font-size:12px;color:var(--glass-border-glow)}.info-value.serial-text.serial-highlight[data-v-ffaf74a6]{font-size:13px;font-weight:700;color:#0a84ff;background:#0a84ff1a;padding:2px 8px;border-radius:6px;letter-spacing:.3px}.card-footer[data-v-ffaf74a6]{display:flex;gap:8px;padding:12px 16px;background:var(--glass-bg);border-top:1px solid var(--glass-border);justify-content:flex-end}.card-action-btn[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:center;padding:8px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.card-action-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 12px var(--glass-border-glow);transform:translateY(-2px)}.card-action-btn.delete-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);color:#e74c3c;border-color:#e74c3c80;box-shadow:var(--glass-shadow-hover),0 0 16px #e74c3c4d}.card-action-btn svg[data-v-ffaf74a6]{width:16px;height:16px}@media (max-width: 768px){.device-manage[data-v-ffaf74a6]{padding:12px}.page-header[data-v-ffaf74a6]{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:12px}.header-actions[data-v-ffaf74a6]{flex-wrap:wrap;width:100%;gap:6px}.view-mode-toggle[data-v-ffaf74a6]{margin-right:6px}.list-view[data-v-ffaf74a6]{display:none!important}.card-view[data-v-ffaf74a6]{display:block!important}.card-grid[data-v-ffaf74a6]{grid-template-columns:1fr;gap:12px}.device-card[data-v-ffaf74a6]{cursor:default}.add-btn[data-v-ffaf74a6],.batch-volume-btn[data-v-ffaf74a6]{padding:8px 12px;font-size:12px}.add-btn svg[data-v-ffaf74a6],.batch-volume-btn svg[data-v-ffaf74a6]{width:14px;height:14px}.page-title[data-v-ffaf74a6]{font-size:17px}.dialog[data-v-ffaf74a6]{max-width:95vw;max-height:90vh;margin:auto}.dialog-body[data-v-ffaf74a6]{padding:16px;max-height:calc(90vh - 140px);overflow-y:auto}.dialog-header[data-v-ffaf74a6],.dialog-footer[data-v-ffaf74a6]{padding:14px 16px}.volume-value[data-v-ffaf74a6]{font-size:36px}.batch-volume-dialog[data-v-ffaf74a6],.volume-dialog[data-v-ffaf74a6]{max-width:95vw}}@media (max-width: 480px){.device-manage[data-v-ffaf74a6]{padding:8px}.header-actions[data-v-ffaf74a6]{gap:4px}.batch-volume-btn span[data-v-ffaf74a6]:not(.diablo-button svg){display:none}.device-card[data-v-ffaf74a6]{padding:0}.card-body[data-v-ffaf74a6]{padding:12px}.card-header[data-v-ffaf74a6],.card-footer[data-v-ffaf74a6]{padding:10px 12px}.confirm-ok[data-v-ffaf74a6],.confirm-cancel[data-v-ffaf74a6]{padding:10px 16px!important;font-size:13px!important}}.confirm-overlay{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;background:#00000080!important;display:flex!important;align-items:center!important;justify-content:center!important;z-index:9999!important;padding:20px!important;-webkit-backdrop-filter:blur(var(--glass-blur))!important;backdrop-filter:blur(var(--glass-blur))!important}.confirm-dialog{background:var(--glass-bg-card)!important;border:1px solid var(--glass-border)!important;border-radius:16px!important;width:90%!important;max-width:420px!important;-webkit-backdrop-filter:blur(var(--glass-blur-heavy))!important;backdrop-filter:blur(var(--glass-blur-heavy))!important;box-shadow:var(--glass-shadow),var(--glass-inner-glow),0 20px 60px #0000004d!important;animation:dialogSlideIn .3s ease!important}.confirm-header{padding:20px!important;border-bottom:1px solid var(--glass-border)!important}.confirm-header h3{margin:0!important;font-size:18px!important;color:var(--diablo-text)!important}.confirm-body{padding:24px!important}.confirm-body p{margin:0!important;font-size:15px!important;color:var(--diablo-text)!important;line-height:1.6!important}.confirm-footer{display:flex!important;gap:12px!important;justify-content:flex-end!important;padding:20px!important;border-top:1px solid var(--glass-border)!important}.confirm-cancel,.confirm-ok{padding:10px 20px!important;border-radius:10px!important;font-size:14px!important;font-weight:500!important;cursor:pointer!important;-webkit-backdrop-filter:blur(var(--glass-blur-light))!important;backdrop-filter:blur(var(--glass-blur-light))!important;transition:all .4s cubic-bezier(.25,.46,.45,.94)!important}.confirm-cancel{background:var(--glass-bg)!important;border:1px solid var(--glass-border)!important;color:var(--diablo-text)!important}.confirm-cancel:hover{background:var(--glass-bg-hover)!important;color:var(--diablo-text)!important;border-color:var(--glass-border-hover)!important;box-shadow:var(--glass-shadow-hover),0 0 8px var(--glass-border-glow)!important}.confirm-ok{background:var(--glass-bg-hover)!important;color:var(--diablo-text)!important;border:1px solid var(--glass-border-hover)!important;box-shadow:var(--glass-shadow),var(--glass-inner-glow)!important}.confirm-ok:hover{background:var(--glass-bg-active)!important;box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow)!important}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.volume-slider{background:var(--glass-bg)!important;border-color:var(--glass-border)!important}.volume-slider::-webkit-slider-thumb{background:var(--glass-border-glow)!important;box-shadow:var(--glass-shadow),0 0 8px var(--glass-border-glow)!important}.volume-slider::-moz-range-thumb{background:var(--glass-border-glow)!important;box-shadow:var(--glass-shadow),0 0 8px var(--glass-border-glow)!important}.volume-number-input{background:var(--glass-bg)!important;border-color:var(--glass-border)!important;color:var(--diablo-text)!important;-webkit-backdrop-filter:blur(var(--glass-blur-light))!important;backdrop-filter:blur(var(--glass-blur-light))!important}.theme-light .volume-slider{background:#e0e0e0!important;border-color:#d0d0d0!important}.theme-light .volume-slider::-webkit-slider-thumb,.theme-light .volume-slider::-moz-range-thumb{background:#ff9800!important}.theme-light .volume-number-input{background:#f5f7fa!important;border-color:#d0d0d0!important;color:#333!important}.theme-light .scan-table-header{background:#0000000a}.theme-light .scan-table-row{border-top-color:#0000000f}.theme-light .scan-table-row:hover{background:#0000000a}.theme-light .scan-table-row.selected{background:#ff980014}.theme-light .scan-device-table{border-color:#0000001a;background:#00000005}.theme-light .scan-sort-btn{background:#0000000a;border-color:#0000001a}.theme-light .scan-sort-btn:hover{background:#00000014;border-color:#00000026}.theme-light .scan-sort-btn.active{background:#ff98001f;border-color:#ff98004d;color:#e68a00}.theme-light .scan-count{background:#ff98001f;color:#e68a00}.theme-light .mono{color:#000000b3}.theme-light .tag-off{background:#0000000f}.theme-light .config-btn{border-color:#0000001f;background:#0000000a}.theme-light .config-btn:hover{background:#ff98001f;border-color:#ff98004d;color:#e68a00}.theme-light .config-seed-display{background:#0000000a;border-color:#00000014}.theme-light .config-seed-value{color:#00000080}.theme-light .config-ip-fields{border-left-color:#ff98004d}.theme-light .toggle-switch{background:#00000026}.theme-light .toggle-switch.on{background:#e68a00}.theme-light .test-comm-section{border-top-color:#00000014}.theme-light .console-body{background:#0000000a;border-color:#00000014}.theme-light .console-body::-webkit-scrollbar-thumb{background:#0000001f}.theme-light .console-empty{color:#00000040}.theme-light .scan-table-body::-webkit-scrollbar-thumb{background:#0000001f}.theme-light .console-clear-btn:hover{background:#0000000f}.theme-light .scan-error{background:#d32f2f14;border-color:#d32f2f26}.theme-light .scan-empty svg{opacity:.5}.theme-light .tag-on{background:#2e7d321f;color:#2e7d32}.theme-light .scan-results-header h4{color:#333}.theme-light .field-error{color:#d32f2f}.theme-light .scan-config-dialog .form-input.input-error{border-color:#d32f2f80!important;box-shadow:0 0 8px #d32f2f26}.device-field .status-badge{display:inline-flex!important;align-items:center!important;gap:6px!important;padding:4px 10px!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important;white-space:nowrap!important;min-width:fit-content!important;-webkit-backdrop-filter:blur(var(--glass-blur-light))!important;backdrop-filter:blur(var(--glass-blur-light))!important;box-shadow:var(--glass-inner-glow)!important;transition:all .4s cubic-bezier(.25,.46,.45,.94)!important}.device-field .status-badge .status-indicator{width:8px!important;height:8px!important;border-radius:50%!important;display:inline-block!important}.device-field .status-badge.status-online{background:#2ecc7133!important;color:#2ecc71!important;border:1px solid rgba(46,204,113,.5)!important;animation:onlineGlow 2s ease-in-out infinite!important}.device-field .status-badge.status-online .status-indicator{background:#2ecc71!important;box-shadow:0 0 12px #2ecc71cc!important;animation:indicatorPulse 1.5s ease-in-out infinite!important}.device-field .status-badge.status-playing{background:#3498db33!important;color:#3498db!important;border:1px solid rgba(52,152,219,.5)!important;position:relative!important;overflow:visible!important}.device-field .status-badge.status-playing .status-indicator{background:#3498db!important;box-shadow:0 0 12px #3498dbcc!important;animation:playingPulse 1.2s ease-in-out infinite!important;position:relative!important}.device-field .status-badge.status-playing .status-indicator:before,.device-field .status-badge.status-playing .status-indicator:after{content:""!important;position:absolute!important;border-radius:50%!important;background:#3498db!important;animation:particleOrbit 3s linear infinite!important}.device-field .status-badge.status-playing .status-indicator:before{width:4px!important;height:4px!important;top:-8px!important;left:-8px!important;opacity:.8!important}.device-field .status-badge.status-playing .status-indicator:after{width:3px!important;height:3px!important;top:-6px!important;right:-6px!important;opacity:.6!important;animation-delay:1s!important}.device-field .status-badge.status-playing:before{content:""!important;position:absolute!important;width:20px!important;height:20px!important;border-radius:50%!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;border:1px solid rgba(52,152,219,.3)!important;animation:rippleEffect 2s ease-out infinite!important;pointer-events:none!important}.device-field .status-badge.status-offline{background:#95a5a626!important;color:#95a5a6!important;border:1px solid rgba(149,165,166,.3)!important}.device-field .status-badge.status-offline .status-indicator{background:#95a5a6!important;animation:none!important}.device-field .status-badge.status-never{background:#7f8c8d26!important;color:#7f8c8d!important;border:1px solid rgba(127,140,141,.3)!important}.device-field .status-badge.status-never .status-indicator{background:#7f8c8d!important;animation:none!important}.device-field .status-badge.status-expired{background:#e74c3c26!important;color:#e74c3c!important;border:1px solid rgba(231,76,60,.3)!important}.device-field .status-badge.status-expired .status-indicator{background:#e74c3c!important;animation:none!important}.device-field .status-badge.status-unknown{background:#bdc3c726!important;color:#bdc3c7!important;border:1px solid rgba(189,195,199,.3)!important}.device-field .status-badge.status-unknown .status-indicator{background:#bdc3c7!important;animation:none!important}.card-info-row .status-badge{display:inline-flex!important;align-items:center!important;gap:6px!important;padding:4px 10px!important;border-radius:12px!important;font-size:12px!important;font-weight:600!important;white-space:nowrap!important;min-width:fit-content!important;-webkit-backdrop-filter:blur(var(--glass-blur-light))!important;backdrop-filter:blur(var(--glass-blur-light))!important;box-shadow:var(--glass-inner-glow)!important;transition:all .4s cubic-bezier(.25,.46,.45,.94)!important}.card-info-row .status-badge .status-indicator{width:8px!important;height:8px!important;border-radius:50%!important;display:inline-block!important}.card-info-row .status-badge.status-online{background:#2ecc7133!important;color:#2ecc71!important;border:1px solid rgba(46,204,113,.5)!important;animation:onlineGlow 2s ease-in-out infinite!important}.card-info-row .status-badge.status-online .status-indicator{background:#2ecc71!important;box-shadow:0 0 12px #2ecc71cc!important;animation:indicatorPulse 1.5s ease-in-out infinite!important}.card-info-row .status-badge.status-playing{background:#3498db33!important;color:#3498db!important;border:1px solid rgba(52,152,219,.5)!important;position:relative!important;overflow:visible!important}.card-info-row .status-badge.status-playing .status-indicator{background:#3498db!important;box-shadow:0 0 12px #3498dbcc!important;animation:playingPulse 1.2s ease-in-out infinite!important;position:relative!important}.card-info-row .status-badge.status-playing .status-indicator:before,.card-info-row .status-badge.status-playing .status-indicator:after{content:""!important;position:absolute!important;border-radius:50%!important;background:#3498db!important;animation:particleOrbit 3s linear infinite!important}.card-info-row .status-badge.status-playing .status-indicator:before{width:4px!important;height:4px!important;top:-8px!important;left:-8px!important;opacity:.8!important}.card-info-row .status-badge.status-playing .status-indicator:after{width:3px!important;height:3px!important;top:-6px!important;right:-6px!important;opacity:.6!important;animation-delay:1s!important}.card-info-row .status-badge.status-playing:before{content:""!important;position:absolute!important;width:20px!important;height:20px!important;border-radius:50%!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;border:1px solid rgba(52,152,219,.3)!important;animation:rippleEffect 2s ease-out infinite!important;pointer-events:none!important}.card-info-row .status-badge.status-offline{background:#95a5a626!important;color:#95a5a6!important;border:1px solid rgba(149,165,166,.3)!important}.card-info-row .status-badge.status-offline .status-indicator{background:#95a5a6!important;animation:none!important}.card-info-row .status-badge.status-never{background:#7f8c8d26!important;color:#7f8c8d!important;border:1px solid rgba(127,140,141,.3)!important}.card-info-row .status-badge.status-never .status-indicator{background:#7f8c8d!important;animation:none!important}.card-info-row .status-badge.status-expired{background:#e74c3c26!important;color:#e74c3c!important;border:1px solid rgba(231,76,60,.3)!important}.card-info-row .status-badge.status-expired .status-indicator{background:#e74c3c!important;animation:none!important}.card-info-row .status-badge.status-unknown{background:#bdc3c726!important;color:#bdc3c7!important;border:1px solid rgba(189,195,199,.3)!important}.card-info-row .status-badge.status-unknown .status-indicator{background:#bdc3c7!important;animation:none!important}@keyframes indicatorPulse{0%,to{opacity:1;transform:scale(1);box-shadow:0 0 12px #2ecc71cc}50%{opacity:.7;transform:scale(1.3);box-shadow:0 0 16px #2ecc71}}@keyframes particleOrbit{0%{transform:rotate(0) scale(1);opacity:.8}25%{transform:rotate(90deg) scale(1.1);opacity:.6}50%{transform:rotate(180deg) scale(1);opacity:1}75%{transform:rotate(270deg) scale(1.1);opacity:.6}to{transform:rotate(360deg) scale(1);opacity:.8}}@keyframes rippleEffect{0%{transform:translate(-50%,-50%) scale(.5);opacity:1}50%{transform:translate(-50%,-50%) scale(1.5);opacity:.5}to{transform:translate(-50%,-50%) scale(2);opacity:0}}@keyframes onlineGlow{0%,to{box-shadow:0 0 4px #2ecc7133}50%{box-shadow:0 0 8px #2ecc7166}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes playingPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}@media (max-width: 768px){.dialog-overlay{padding:10px!important}.dialog{max-width:95vw!important;max-height:90vh!important}.dialog-body{max-height:calc(90vh - 140px);overflow-y:auto}.dialog-header h3{font-size:15px!important}.volume-dialog .volume-value{font-size:36px!important}.confirm-overlay{padding:10px!important}.confirm-dialog{width:95%!important;max-width:95%!important}.confirm-header h3{font-size:15px!important}.confirm-body p{font-size:14px!important}.confirm-cancel,.confirm-ok{padding:8px 14px!important;font-size:13px!important}.custom-message{font-size:13px;padding:10px 16px;max-width:90vw}}.scan-dialog[data-v-ffaf74a6]{max-width:1100px;max-height:85vh;display:flex;flex-direction:column}.scan-dialog .dialog-body[data-v-ffaf74a6]{overflow-y:auto;flex:1;min-height:0}.scan-main-layout[data-v-ffaf74a6]{display:flex;gap:12px;min-height:0}.scan-main-left[data-v-ffaf74a6]{flex:1;min-width:0;display:flex;flex-direction:column}.scan-console-side[data-v-ffaf74a6]{width:260px;flex-shrink:0;display:flex;flex-direction:column}.scan-console-side .console-body[data-v-ffaf74a6]{flex:1;max-height:50vh;min-height:120px}.scan-config-dialog[data-v-ffaf74a6]{max-width:560px;max-height:85vh;display:flex;flex-direction:column}.scan-config-dialog .dialog-body[data-v-ffaf74a6]{overflow-y:auto;flex:1;min-height:0}.scan-config-dialog .dialog-footer[data-v-ffaf74a6]{flex-shrink:0}.scan-config-dialog .console-section[data-v-ffaf74a6]{margin-top:12px}.scan-config-dialog .console-body[data-v-ffaf74a6]{max-height:120px;overflow-y:auto}.scan-config-dialog .form-group[data-v-ffaf74a6]{margin-bottom:12px}.scan-config-dialog .config-ip-fields[data-v-ffaf74a6],.scan-config-dialog .config-row-2col[data-v-ffaf74a6]{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.scan-header-icon[data-v-ffaf74a6]{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#5856d6,#0a84ff);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.scan-header-icon.config-icon[data-v-ffaf74a6]{background:linear-gradient(135deg,#ff9f0a,#ff6723)}.scan-top-bar[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.scan-hint[data-v-ffaf74a6]{color:var(--text-muted, #86868b);font-size:13px;margin:0;flex:1}.scan-action-btn[data-v-ffaf74a6]{white-space:nowrap;padding:8px 20px;font-size:13px;border-radius:10px;display:flex;align-items:center;gap:6px;background:var(--glass-bg-hover);color:var(--diablo-text);border:1px solid var(--glass-border-hover);cursor:pointer;transition:all .2s}.scan-action-btn[data-v-ffaf74a6]:hover:not(:disabled){background:var(--glass-bg-active);box-shadow:0 0 12px var(--glass-border-glow)}.scan-action-btn[data-v-ffaf74a6]:disabled{opacity:.6;cursor:not-allowed}@keyframes spin-ffaf74a6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.scan-spinner[data-v-ffaf74a6]{animation:spin-ffaf74a6 1s linear infinite}.scan-error[data-v-ffaf74a6]{color:var(--danger, #ff453a);font-size:13px;margin-bottom:12px;display:flex;align-items:center;gap:6px;padding:8px 12px;background:#ff453a1a;border-radius:8px;border:1px solid rgba(255,69,58,.2)}.scan-empty[data-v-ffaf74a6]{text-align:center;color:var(--text-muted, #86868b);padding:32px 24px;display:flex;flex-direction:column;align-items:center;gap:8px}.scan-empty svg[data-v-ffaf74a6]{opacity:.3}.scan-empty p[data-v-ffaf74a6]{margin:0;font-size:14px}.scan-results[data-v-ffaf74a6]{margin-top:4px}.scan-results-header[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.scan-results-header h4[data-v-ffaf74a6]{font-size:14px;color:var(--text-primary, #f5f5f7);margin:0;font-weight:600}.scan-count[data-v-ffaf74a6]{font-size:12px;font-weight:500;color:var(--primary, #0a84ff);background:#0a84ff1f;padding:2px 8px;border-radius:10px;margin-left:6px}.scan-sort-btns[data-v-ffaf74a6]{display:flex;gap:4px}.scan-sort-btn[data-v-ffaf74a6]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);color:var(--text-muted, #86868b);font-size:11px;padding:4px 10px;border-radius:6px;cursor:pointer;transition:all .15s;font-weight:500}.scan-sort-btn[data-v-ffaf74a6]:hover{background:#ffffff14;border-color:#ffffff26}.scan-sort-btn.active[data-v-ffaf74a6]{background:#0a84ff26;border-color:#0a84ff59;color:var(--primary, #0a84ff)}.sort-arrow[data-v-ffaf74a6]{font-size:10px}.scan-device-table[data-v-ffaf74a6]{border:1px solid rgba(255,255,255,.08);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;background:#0003}.scan-table-body[data-v-ffaf74a6]{max-height:45vh;overflow-y:auto}.scan-table-body[data-v-ffaf74a6]::-webkit-scrollbar{width:5px}.scan-table-body[data-v-ffaf74a6]::-webkit-scrollbar-track{background:transparent}.scan-table-body[data-v-ffaf74a6]::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.scan-table-body[data-v-ffaf74a6]::-webkit-scrollbar-thumb:hover{background:#fff3}.scan-table-header[data-v-ffaf74a6],.scan-table-row[data-v-ffaf74a6]{display:grid;grid-template-columns:36px 100px 1fr 90px 48px 44px 44px 80px 40px;gap:2px;padding:7px 10px;font-size:11px;align-items:center}.scan-table-header[data-v-ffaf74a6]{background:#ffffff0a;font-weight:600;color:var(--text-muted, #86868b);flex-shrink:0;text-transform:uppercase;letter-spacing:.3px;font-size:10px}.scan-table-row[data-v-ffaf74a6]{border-top:1px solid rgba(255,255,255,.06);cursor:pointer;transition:all .15s;color:var(--diablo-text, rgba(255,255,255,.85))}.scan-table-row[data-v-ffaf74a6]:hover{background:#ffffff0a}.scan-table-row.selected[data-v-ffaf74a6]{background:#0a84ff1a}.col-idx[data-v-ffaf74a6]{text-align:center;color:var(--text-muted, #86868b);font-size:10px}.col-port[data-v-ffaf74a6],.col-flag[data-v-ffaf74a6]{text-align:center}.mono[data-v-ffaf74a6]{font-family:SF Mono,Cascadia Code,monospace;font-size:10px;color:var(--diablo-text, rgba(255,255,255,.85));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag[data-v-ffaf74a6]{display:inline-block;padding:1px 6px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:.5px}.tag-on[data-v-ffaf74a6]{background:#30d15826;color:#30d158}.tag-off[data-v-ffaf74a6]{background:#ffffff0f;color:var(--text-muted, #86868b)}.scan-add-btn[data-v-ffaf74a6]{width:26px;height:26px;border-radius:6px;border:1px solid rgba(48,209,88,.2);background:#30d15814;color:#30d158;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.scan-add-btn[data-v-ffaf74a6]:hover{background:#30d15833;border-color:#30d15866}.theme-light .scan-add-btn[data-v-ffaf74a6]{border-color:#00780026;background:#0078000d;color:#1b8a1b}.theme-light .scan-add-btn[data-v-ffaf74a6]:hover{background:#0078001f;border-color:#0078004d}.config-btn[data-v-ffaf74a6]{width:26px;height:26px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-muted, #86868b);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.config-btn[data-v-ffaf74a6]:hover{background:#0a84ff26;border-color:#0a84ff4d;color:var(--primary, #0a84ff)}.config-seed-display[data-v-ffaf74a6]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#00000040;border-radius:8px;margin-bottom:16px;border:1px solid rgba(255,255,255,.06)}.config-seed-label[data-v-ffaf74a6]{font-size:11px;color:var(--text-muted, #86868b);flex-shrink:0;font-weight:600}.config-seed-value[data-v-ffaf74a6]{font-family:SF Mono,Cascadia Code,monospace;font-size:11px;color:#ffffff80;overflow:hidden;text-overflow:ellipsis}.toggle-label[data-v-ffaf74a6]{display:flex!important;align-items:center;justify-content:space-between;cursor:pointer}.toggle-switch[data-v-ffaf74a6]{width:36px;height:20px;border-radius:10px;background:#ffffff1f;position:relative;transition:background .2s;flex-shrink:0}.toggle-switch.on[data-v-ffaf74a6]{background:var(--primary, #0a84ff)}.toggle-knob[data-v-ffaf74a6]{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.toggle-switch.on .toggle-knob[data-v-ffaf74a6]{transform:translate(16px)}.config-ip-fields[data-v-ffaf74a6]{border-left:2px solid rgba(10,132,255,.3);padding-left:12px;margin-left:4px}.diablo-button-danger[data-v-ffaf74a6]{background:linear-gradient(135deg,#ff453a,#ff6723)!important;border:none!important;color:#fff!important;display:flex;align-items:center;gap:4px}.diablo-button-danger[data-v-ffaf74a6]:hover{opacity:.9}.scan-btn[data-v-ffaf74a6]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.scan-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.scan-btn svg[data-v-ffaf74a6]{width:16px;height:16px}.test-comm-section[data-v-ffaf74a6]{margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.test-comm-section h4[data-v-ffaf74a6]{font-size:13px;color:var(--text-primary, #f5f5f7);margin:0 0 8px;font-weight:600}.test-comm-bar[data-v-ffaf74a6]{display:flex;gap:8px}.test-seed-input[data-v-ffaf74a6]{flex:1;font-family:SF Mono,Cascadia Code,monospace!important;font-size:12px!important;letter-spacing:.5px}.test-comm-btn[data-v-ffaf74a6]{white-space:nowrap;padding:8px 16px;font-size:12px;border-radius:8px;background:var(--glass-bg-hover);color:var(--diablo-text);border:1px solid var(--glass-border-hover);cursor:pointer;transition:all .2s}.test-comm-btn[data-v-ffaf74a6]:hover:not(:disabled){background:var(--glass-bg-active);box-shadow:0 0 10px var(--glass-border-glow)}.test-comm-btn[data-v-ffaf74a6]:disabled{opacity:.6;cursor:not-allowed}.console-section[data-v-ffaf74a6]{margin-top:16px}.console-header[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.console-header h4[data-v-ffaf74a6]{font-size:13px;color:var(--text-primary, #f5f5f7);margin:0;font-weight:600}.console-clear-btn[data-v-ffaf74a6]{background:none;border:none;color:var(--text-muted, #86868b);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px}.console-clear-btn[data-v-ffaf74a6]:hover{color:var(--text-primary, #f5f5f7);background:#ffffff0f}.console-body[data-v-ffaf74a6]{background:#00000059;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px 10px;max-height:180px;overflow-y:auto;font-family:SF Mono,Cascadia Code,monospace;font-size:11px;line-height:1.6}.console-body[data-v-ffaf74a6]::-webkit-scrollbar{width:4px}.console-body[data-v-ffaf74a6]::-webkit-scrollbar-track{background:transparent}.console-body[data-v-ffaf74a6]::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.console-empty[data-v-ffaf74a6]{color:#fff3;font-style:italic}.console-line[data-v-ffaf74a6]{white-space:pre-wrap;word-break:break-all}.log-send[data-v-ffaf74a6]{color:#ff9f0acc}.log-recv[data-v-ffaf74a6]{color:#30d158cc}.log-info[data-v-ffaf74a6]{color:#fff6}.log-error[data-v-ffaf74a6]{color:#ff453acc}.field-error[data-v-ffaf74a6]{display:block;font-size:12px;color:#ff453ae6;margin-top:4px}.scan-config-dialog .form-input.input-error[data-v-ffaf74a6]{border-color:#ff453ab3!important;box-shadow:0 0 8px #ff453a33}.advanced-btn[data-v-ffaf74a6]{margin-right:auto;padding:8px 16px;font-size:12px;border-radius:8px;cursor:pointer;transition:all .2s;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text)}.advanced-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 8px var(--glass-border-glow)}.amixer-dialog[data-v-ffaf74a6]{width:640px;max-height:90vh}.amixer-dialog .dialog-header h3[data-v-ffaf74a6]{color:var(--diablo-text)}.amixer-body[data-v-ffaf74a6]{max-height:calc(90vh - 120px);overflow-y:auto;padding:16px}.amixer-body[data-v-ffaf74a6]::-webkit-scrollbar{width:4px}.amixer-body[data-v-ffaf74a6]::-webkit-scrollbar-track{background:transparent}.amixer-body[data-v-ffaf74a6]::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.amixer-toolbar[data-v-ffaf74a6]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.amixer-seed-display[data-v-ffaf74a6]{font-size:11px;color:var(--text-muted, #86868b);letter-spacing:.5px}.amixer-get-btn[data-v-ffaf74a6]{padding:6px 14px;font-size:12px;background:var(--glass-bg-hover);color:var(--diablo-text);border:1px solid var(--glass-border-hover);border-radius:8px;cursor:pointer;transition:all .2s}.amixer-get-btn[data-v-ffaf74a6]:hover:not(:disabled){background:var(--glass-bg-active);box-shadow:0 0 10px var(--glass-border-glow)}.amixer-get-btn[data-v-ffaf74a6]:disabled{opacity:.6;cursor:not-allowed}.amixer-groups[data-v-ffaf74a6]{display:flex;flex-direction:column;gap:12px}.amixer-group[data-v-ffaf74a6]{background:var(--glass-bg, rgba(255,255,255,.03));border:1px solid var(--glass-border, rgba(255,255,255,.06));border-radius:10px;padding:12px}.amixer-group-title[data-v-ffaf74a6]{font-size:12px;font-weight:600;color:var(--diablo-text, #f5f5f7);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.04)}.amixer-controls[data-v-ffaf74a6]{display:flex;flex-direction:column;gap:8px}.amixer-row[data-v-ffaf74a6]{display:flex;align-items:center;gap:8px}.amixer-label[data-v-ffaf74a6]{flex:0 0 140px;font-size:12px;color:var(--diablo-text, rgba(255,255,255,.85));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.amixer-slider[data-v-ffaf74a6]{flex:1;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none}.amixer-slider[data-v-ffaf74a6]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--glass-border-glow, #ff6b35);cursor:pointer;box-shadow:0 0 6px #ff6b3566}.amixer-value[data-v-ffaf74a6]{flex:0 0 28px;font-size:12px;font-family:SF Mono,Cascadia Code,monospace;color:var(--text-muted, #86868b);text-align:right}.amixer-select[data-v-ffaf74a6]{flex:0 0 80px;background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--diablo-text, #f5f5f7);padding:4px 8px;font-size:12px;cursor:pointer;outline:none}.amixer-select[data-v-ffaf74a6]:focus{border-color:var(--glass-border-glow, #ff6b35)}.amixer-apply-btn[data-v-ffaf74a6]{flex:0 0 auto;padding:3px 10px;font-size:11px;border-radius:6px;background:#ffffff0f;color:var(--text-muted, #86868b);border:1px solid rgba(255,255,255,.08);cursor:pointer;transition:all .2s;white-space:nowrap}.amixer-apply-btn[data-v-ffaf74a6]:hover{background:var(--glass-bg-hover, rgba(255,255,255,.08));color:var(--diablo-text, #f5f5f7);border-color:var(--glass-border-hover, rgba(255,255,255,.15))}.theme-light .amixer-group[data-v-ffaf74a6]{background:#00000005;border-color:#00000014}.theme-light .amixer-group-title[data-v-ffaf74a6]{color:var(--diablo-text);border-bottom-color:#0000000f}.theme-light .amixer-label[data-v-ffaf74a6]{color:var(--diablo-text)}.theme-light .amixer-slider[data-v-ffaf74a6]{background:#0000001a}.theme-light .amixer-select[data-v-ffaf74a6]{background:#fffc;border-color:#0000001f;color:#1d1d1f}.theme-light .amixer-apply-btn[data-v-ffaf74a6]{background:#0000000a;border-color:#0000001a;color:#6e6e73}.theme-light .amixer-apply-btn[data-v-ffaf74a6]:hover{background:#00000014;color:#1d1d1f;border-color:#0003}.theme-light .amixer-toolbar[data-v-ffaf74a6]{border-bottom-color:#0000000f}
@@ -0,0 +1 @@
1
+ .login-container[data-v-02aa6d08]{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}.particles[data-v-02aa6d08]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;overflow:hidden}.particle[data-v-02aa6d08]{position:absolute;width:4px;height:4px;background:var(--diablo-primary);border-radius:50%;opacity:.6;animation:particle-float-02aa6d08 10s infinite ease-in-out}@keyframes particle-float-02aa6d08{0%,to{transform:translate(0) scale(1);opacity:.6}50%{transform:translate(100px,-100px) scale(.5);opacity:0}}.login-card[data-v-02aa6d08]{width:100%;max-width:440px;padding:48px 40px;background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-heavy));backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border);border-radius:16px;box-shadow:var(--glass-shadow),var(--glass-inner-glow);position:relative;z-index:1;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.login-header[data-v-02aa6d08]{text-align:center;margin-bottom:32px}.logo-container[data-v-02aa6d08]{display:flex;justify-content:center;margin-bottom:20px}.diablo-logo[data-v-02aa6d08]{position:relative;width:80px;height:80px;display:flex;align-items:center;justify-content:center}.logo-core[data-v-02aa6d08]{position:absolute;width:20px;height:20px;background:var(--diablo-primary);border-radius:50%;box-shadow:0 0 30px var(--diablo-primary),0 0 60px #0a84ff80;animation:core-pulse-02aa6d08 2s infinite ease-in-out}.logo-ring[data-v-02aa6d08]{position:absolute;width:50px;height:50px;border:2px solid var(--diablo-accent);border-radius:50%;box-shadow:0 0 20px #ff95004d,inset 0 0 20px #ff95001a;animation:ring-rotate-02aa6d08 8s infinite linear}.logo-particles[data-v-02aa6d08]{position:absolute;width:100%;height:100%}.logo-particle[data-v-02aa6d08]{position:absolute;top:50%;left:50%;width:6px;height:6px;background:var(--diablo-primary);border-radius:50%;opacity:.8;transform-origin:center;animation:particle-orbit-02aa6d08 4s infinite ease-in-out;animation-delay:var(--delay)}@keyframes core-pulse-02aa6d08{0%,to{transform:scale(1);box-shadow:0 0 30px var(--diablo-primary),0 0 60px #0a84ff80}50%{transform:scale(1.2);box-shadow:0 0 40px var(--diablo-primary),0 0 80px #0a84ffcc}}@keyframes ring-rotate-02aa6d08{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes particle-orbit-02aa6d08{0%,to{transform:translate(-50%,-50%) rotate(var(--angle)) translate(30px);opacity:.8}50%{transform:translate(-50%,-50%) rotate(var(--angle)) translate(40px);opacity:.4}}.login-title[data-v-02aa6d08]{margin-bottom:8px;font-size:32px}.subtitle[data-v-02aa6d08]{font-family:var(--diablo-font-family-ui);font-size:12px;color:var(--diablo-text-muted);letter-spacing:4px;text-transform:uppercase}.diablo-gold-line[data-v-02aa6d08]{margin:24px 0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--diablo-accent),transparent);opacity:.5}.language-selector[data-v-02aa6d08]{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:24px}.theme-toggle[data-v-02aa6d08]{position:relative;width:48px;height:26px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:13px;cursor:pointer;transition:all .3s ease;box-shadow:var(--glass-inner-glow);flex-shrink:0}.theme-toggle-track[data-v-02aa6d08]{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 5px}.theme-toggle-icon[data-v-02aa6d08]{width:13px;height:13px;color:var(--diablo-text-muted);transition:all .3s ease;flex-shrink:0;opacity:.3}.theme-toggle[data-theme=diablo] .theme-toggle-icon.sun[data-v-02aa6d08]{opacity:.6;color:#ff9500}.theme-toggle[data-theme=light] .theme-toggle-icon.moon[data-v-02aa6d08]{opacity:.6;color:#5856d6}.theme-toggle-thumb[data-v-02aa6d08]{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;transition:all .3s cubic-bezier(.25,.46,.45,.94);box-shadow:0 1px 3px #00000026;z-index:1}.theme-toggle[data-theme=diablo] .theme-toggle-thumb[data-v-02aa6d08]{transform:translate(0);background:#ff9500}.theme-toggle[data-theme=light] .theme-toggle-thumb[data-v-02aa6d08]{transform:translate(22px);background:#5856d6}.theme-toggle[data-v-02aa6d08]:hover{border-color:var(--glass-border-hover)}.login-form[data-v-02aa6d08]{margin-top:32px}.form-group[data-v-02aa6d08]{margin-bottom:20px}.field-hint[data-v-02aa6d08]{font-size:11px;color:var(--diablo-text-muted);margin-top:6px;opacity:.7;padding-left:4px}.input-focused[data-v-02aa6d08]{border-color:var(--diablo-primary)!important;box-shadow:0 0 12px #0a84ff26!important}.login-btn[data-v-02aa6d08]{width:100%;margin-top:24px;font-size:16px;letter-spacing:3px}.loading-text[data-v-02aa6d08]{display:flex;align-items:center;justify-content:center;gap:10px}.form-footer[data-v-02aa6d08]{display:flex;justify-content:center;align-items:center;margin-top:20px;font-size:14px}.remember-me[data-v-02aa6d08]{display:flex;align-items:center;gap:8px;color:var(--diablo-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.remember-me input[data-v-02aa6d08]{cursor:pointer}.login-footer[data-v-02aa6d08]{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:var(--diablo-text-muted)}.footer-divider[data-v-02aa6d08]{color:var(--diablo-accent);width:24px;height:24px;display:flex;align-items:center;justify-content:center}.footer-divider [data-v-02aa6d08] svg{width:100%;height:100%;stroke:var(--diablo-accent)}.fire-effect[data-v-02aa6d08]{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:flex;gap:4px;pointer-events:none}.flame[data-v-02aa6d08]{width:3px;height:60px;background:linear-gradient(to top,var(--diablo-fire),transparent);border-radius:50%/60% 60% 40% 40%;animation:flame-dance-02aa6d08 2s infinite ease-in-out;opacity:.6}@keyframes flame-dance-02aa6d08{0%,to{height:40px;opacity:.4}50%{height:80px;opacity:.8}}@media (max-width: 480px){.login-card[data-v-02aa6d08]{padding:32px 24px}.login-title[data-v-02aa6d08]{font-size:24px}.diablo-logo[data-v-02aa6d08]{width:60px;height:60px}.logo-ring[data-v-02aa6d08]{width:40px;height:40px}}.login-scan-btn[data-v-02aa6d08]{position:fixed;top:20px;right:20px;z-index:100;width:40px;height:40px;border-radius:10px;background:var(--glass-bg, rgba(255,255,255,.05));border:1px solid var(--glass-border, rgba(255,255,255,.1));color:var(--diablo-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-scan-btn[data-v-02aa6d08]:hover{background:var(--glass-bg-hover, rgba(255,255,255,.1));border-color:var(--glass-border-hover, rgba(255,255,255,.2));color:var(--diablo-text, #f5f5f7);box-shadow:0 0 12px var(--glass-border-glow, rgba(255,107,53,.3))}.login-scan-btn svg[data-v-02aa6d08]{width:18px;height:18px}.dialog-overlay[data-v-02aa6d08]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog[data-v-02aa6d08]{background:var(--glass-bg-card, rgba(20,20,30,.95));border:1px solid var(--glass-border, rgba(255,255,255,.1));border-radius:16px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 20px 60px #00000080;overflow:hidden}.dialog-header[data-v-02aa6d08]{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--glass-border, rgba(255,255,255,.06))}.dialog-header h3[data-v-02aa6d08]{flex:1;font-size:16px;font-weight:600;color:var(--diablo-text, #f5f5f7);margin:0}.close-btn[data-v-02aa6d08]{width:28px;height:28px;border:none;background:#ffffff0f;border-radius:6px;color:var(--diablo-text-muted);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-btn[data-v-02aa6d08]:hover{background:#ff453a33;color:#ff453a}.scan-header-icon[data-v-02aa6d08]{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--diablo-primary),var(--diablo-accent));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.scan-header-icon.config-icon[data-v-02aa6d08]{background:linear-gradient(135deg,#ff6b35,#ff453a)}.scan-dialog[data-v-02aa6d08]{width:1100px;max-height:85vh}.scan-dialog .dialog-body[data-v-02aa6d08]{max-height:calc(85vh - 70px);overflow-y:auto;padding:20px}.scan-top-bar[data-v-02aa6d08]{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.scan-hint[data-v-02aa6d08]{margin:0;font-size:13px;color:var(--diablo-text-muted)}.scan-action-btn[data-v-02aa6d08]{white-space:nowrap;padding:8px 16px;font-size:12px;background:var(--glass-bg-hover);color:var(--diablo-text);border:1px solid var(--glass-border-hover);border-radius:8px;cursor:pointer}.scan-error[data-v-02aa6d08]{color:#ff453ae6;font-size:13px;margin-bottom:12px}.scan-main-layout[data-v-02aa6d08]{display:flex;gap:16px}.scan-main-left[data-v-02aa6d08]{flex:1;min-width:0}.scan-console-side[data-v-02aa6d08]{width:280px;flex-shrink:0;display:flex;flex-direction:column}.scan-results-header[data-v-02aa6d08]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.scan-results-header h4[data-v-02aa6d08]{font-size:13px;color:var(--diablo-text, #f5f5f7);margin:0}.scan-count[data-v-02aa6d08]{color:var(--diablo-accent);font-weight:700}.scan-device-table[data-v-02aa6d08]{font-size:12px}.scan-table-header[data-v-02aa6d08],.scan-table-row[data-v-02aa6d08]{display:flex;align-items:center;gap:6px;padding:8px 10px}.scan-table-header[data-v-02aa6d08]{color:var(--diablo-text-muted);font-weight:600;border-bottom:1px solid rgba(255,255,255,.06);font-size:11px}.scan-table-row[data-v-02aa6d08]{border-bottom:1px solid rgba(255,255,255,.03);transition:background .2s;color:var(--diablo-text, rgba(255,255,255,.85))}.scan-table-row[data-v-02aa6d08]:hover{background:#ffffff0a}.col-idx[data-v-02aa6d08]{flex:0 0 24px;text-align:center}.col-ip[data-v-02aa6d08]{flex:0 0 110px}.col-seed[data-v-02aa6d08]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:11px}.col-media[data-v-02aa6d08]{flex:0 0 100px}.col-port[data-v-02aa6d08],.col-flag[data-v-02aa6d08]{flex:0 0 50px;text-align:center}.col-dns[data-v-02aa6d08]{flex:0 0 85px}.col-action[data-v-02aa6d08]{flex:0 0 32px;text-align:center}.tag[data-v-02aa6d08]{font-size:10px;padding:1px 6px;border-radius:4px;font-weight:600}.tag-on[data-v-02aa6d08]{background:#30d15826;color:#30d158e6}.tag-off[data-v-02aa6d08]{background:#ffffff0d;color:#ffffff4d}.config-btn[data-v-02aa6d08]{width:24px;height:24px;border:none;background:#ffffff0f;border-radius:5px;color:var(--diablo-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.config-btn[data-v-02aa6d08]:hover{background:#ff6b3526;color:var(--diablo-accent)}.scan-empty[data-v-02aa6d08]{text-align:center;color:var(--diablo-text-muted);padding:32px 0;display:flex;flex-direction:column;align-items:center;gap:8px}.scan-empty p[data-v-02aa6d08]{margin:0;font-size:13px}.console-header[data-v-02aa6d08]{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.console-header h4[data-v-02aa6d08]{font-size:13px;color:var(--diablo-text, #f5f5f7);margin:0;font-weight:600}.console-clear-btn[data-v-02aa6d08]{background:none;border:none;color:var(--diablo-text-muted);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px}.console-clear-btn[data-v-02aa6d08]:hover{color:var(--diablo-text, #f5f5f7);background:#ffffff0f}.console-body[data-v-02aa6d08]{background:#00000059;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px 10px;max-height:50vh;overflow-y:auto;font-family:SF Mono,Cascadia Code,monospace;font-size:11px;line-height:1.6;flex:1}.console-body[data-v-02aa6d08]::-webkit-scrollbar{width:4px}.console-body[data-v-02aa6d08]::-webkit-scrollbar-track{background:transparent}.console-body[data-v-02aa6d08]::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.console-empty[data-v-02aa6d08]{color:#fff3;font-style:italic}.console-line[data-v-02aa6d08]{white-space:pre-wrap;word-break:break-all}.log-send[data-v-02aa6d08]{color:#ff9f0acc}.log-recv[data-v-02aa6d08]{color:#30d158cc}.log-info[data-v-02aa6d08]{color:#fff6}.log-error[data-v-02aa6d08]{color:#ff453acc}.scan-config-dialog[data-v-02aa6d08]{width:500px;max-height:85vh}.scan-config-dialog .dialog-body[data-v-02aa6d08]{max-height:calc(85vh - 130px);overflow-y:auto;padding:20px}.config-seed-display[data-v-02aa6d08]{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding:8px 12px;background:#0003;border-radius:8px;border:1px solid rgba(255,255,255,.06)}.config-seed-label[data-v-02aa6d08]{font-size:12px;color:var(--diablo-text-muted)}.config-seed-value[data-v-02aa6d08]{font-size:11px;color:var(--diablo-text, #f5f5f7)}.form-group[data-v-02aa6d08]{margin-bottom:4px}.form-group label[data-v-02aa6d08]{display:block;font-size:12px;color:var(--diablo-text-muted);margin-bottom:4px}.form-input[data-v-02aa6d08]{width:100%;padding:8px 12px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--diablo-text, #f5f5f7);font-size:13px;outline:none;transition:border-color .2s;box-sizing:border-box}.form-input[data-v-02aa6d08]:focus{border-color:var(--glass-border-glow, #ff6b35)}.toggle-label[data-v-02aa6d08]{display:flex;align-items:center;justify-content:space-between;cursor:pointer}.config-ip-fields[data-v-02aa6d08]{display:flex;flex-direction:column;gap:8px;padding:12px;background:#0000001a;border-radius:8px;border:1px solid rgba(255,255,255,.04);margin-bottom:8px}.config-row-2col[data-v-02aa6d08]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.console-section[data-v-02aa6d08]{margin-top:16px}.dialog-footer[data-v-02aa6d08]{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--glass-border, rgba(255,255,255,.06))}.cancel-btn[data-v-02aa6d08],.confirm-btn[data-v-02aa6d08]{padding:8px 20px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .2s}.cancel-btn[data-v-02aa6d08]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text)}.confirm-btn[data-v-02aa6d08]{background:var(--glass-bg-hover);border:1px solid var(--glass-border-hover);color:var(--diablo-text);box-shadow:var(--glass-inner-glow)}.cancel-btn[data-v-02aa6d08]:hover{background:var(--glass-bg-hover)}.confirm-btn[data-v-02aa6d08]:hover{background:var(--glass-bg-active)}.mono[data-v-02aa6d08]{font-family:SF Mono,Cascadia Code,Consolas,monospace}.theme-light .login-card{background:var(--glass-bg-card)!important;border-color:var(--glass-border)!important;-webkit-backdrop-filter:blur(var(--glass-blur-heavy))!important;backdrop-filter:blur(var(--glass-blur-heavy))!important}.theme-light .toggle-switch{background:#0003!important;border-color:#00000026!important}.theme-light .toggle-switch.on{background:#e68a00!important;border-color:transparent!important}.login-container .toggle-switch{width:36px;height:20px;border-radius:10px;background:#ffffff40;border:1px solid rgba(255,255,255,.2);position:relative;transition:background .2s;flex-shrink:0;display:inline-block}.login-container .toggle-switch.on{background:#0a84ff;border-color:transparent}.login-container .toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0000004d}.login-container .toggle-switch.on .toggle-knob{transform:translate(16px)}
@@ -0,0 +1 @@
1
+ .log-page[data-v-4f8703bd]{max-width:1400px;margin:0 auto;width:100%;display:flex;flex-direction:column}.page-header[data-v-4f8703bd]{margin-bottom:16px;flex-shrink:0}.page-title[data-v-4f8703bd]{font-family:var(--diablo-font-family);font-size:22px;font-weight:600;color:var(--diablo-text);letter-spacing:-.3px}.glass-section[data-v-4f8703bd]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:12px;padding:16px 20px;margin-bottom:16px;backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));flex-shrink:0}.log-table-section[data-v-4f8703bd]{display:flex;flex-direction:column;margin-bottom:0;padding:0;overflow:hidden}.table-scroll-wrap[data-v-4f8703bd]{max-height:calc(100vh - 280px);min-height:300px;overflow:auto;padding:0 20px}.toolbar-row[data-v-4f8703bd]{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.toolbar-left[data-v-4f8703bd]{display:flex;align-items:center;gap:12px}.toolbar-right[data-v-4f8703bd]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.select-input[data-v-4f8703bd]{min-width:200px}.cache-size[data-v-4f8703bd]{font-size:13px;color:var(--diablo-text-muted);white-space:nowrap}.diablo-btn[data-v-4f8703bd]{padding:8px 18px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--glass-border);background:var(--glass-bg);color:var(--diablo-text);transition:all .2s}.diablo-btn[data-v-4f8703bd]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.primary-btn[data-v-4f8703bd]{background:var(--diablo-primary);color:#fff;border-color:var(--diablo-primary)}.primary-btn[data-v-4f8703bd]:hover{filter:brightness(1.15)}.toolbar-btn[data-v-4f8703bd]{padding:6px 14px;border-radius:8px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--glass-border);background:transparent;color:var(--diablo-text-muted);transition:all .2s}.toolbar-btn[data-v-4f8703bd]:hover{background:var(--glass-bg-hover)}.danger-btn[data-v-4f8703bd]:hover{background:#ff3b301a;border-color:#ff3b304d;color:#ff3b30}.table-wrap[data-v-4f8703bd]{overflow-x:auto}.data-table[data-v-4f8703bd]{width:100%;border-collapse:collapse;font-size:13px}.data-table thead[data-v-4f8703bd]{position:sticky;top:0;background:var(--glass-bg-card);z-index:1}.data-table th[data-v-4f8703bd]{text-align:left;padding:12px;font-weight:600;color:var(--diablo-text-muted);border-bottom:1px solid var(--glass-border);white-space:nowrap;background:var(--glass-bg-card)}.data-table td[data-v-4f8703bd]{padding:10px 12px;border-bottom:1px solid var(--glass-border);color:var(--diablo-text)}.data-table tbody tr[data-v-4f8703bd]:hover{background:var(--glass-bg-hover)}.td-time[data-v-4f8703bd]{white-space:nowrap;font-size:12px;color:var(--diablo-text-muted)}.td-num[data-v-4f8703bd]{text-align:right;font-variant-numeric:tabular-nums}.td-filename[data-v-4f8703bd]{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.td-action[data-v-4f8703bd]{text-align:center}.act-btn[data-v-4f8703bd]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;background:transparent;border:1px solid var(--glass-border);color:var(--diablo-text-muted);transition:all .2s}.act-btn[data-v-4f8703bd]:hover{background:var(--glass-bg-hover);color:var(--diablo-text)}.act-btn-play[data-v-4f8703bd]:hover{background:#0a84ff1a;border-color:#0a84ff4d;color:var(--diablo-primary)}.empty-state[data-v-4f8703bd]{text-align:center;padding:40px;color:var(--diablo-text-muted);font-size:14px}.pagination-row[data-v-4f8703bd]{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;border-top:1px solid var(--glass-border);flex-shrink:0;background:var(--glass-bg-card);border-radius:0 0 12px 12px}.page-btn[data-v-4f8703bd]{padding:6px 16px;border-radius:6px;font-size:13px;cursor:pointer;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text);transition:all .2s}.page-btn[data-v-4f8703bd]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}.page-btn[data-v-4f8703bd]:disabled{opacity:.4;cursor:not-allowed}.page-info[data-v-4f8703bd]{font-size:13px;color:var(--diablo-text-muted)}.modal-overlay[data-v-4f8703bd]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-box[data-v-4f8703bd]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;padding:24px;min-width:300px;max-width:500px;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 32px #0006}.audio-modal-box[data-v-4f8703bd]{width:420px}.modal-title[data-v-4f8703bd]{font-size:15px;font-weight:600;color:var(--diablo-text);margin-bottom:16px}.modal-body[data-v-4f8703bd]{font-size:14px;color:var(--diablo-text-muted);line-height:1.5;margin-bottom:20px}.modal-actions[data-v-4f8703bd]{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}.modal-btn[data-v-4f8703bd]{padding:8px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text-muted)}.modal-btn[data-v-4f8703bd]:hover{background:var(--glass-bg-hover);color:var(--diablo-text)}.audio-player-wrap[data-v-4f8703bd]{display:flex;justify-content:center;padding:12px 0}.audio-player[data-v-4f8703bd]{width:100%;height:40px}.form-input[data-v-4f8703bd]{padding:8px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--diablo-text);font-size:13px;transition:all .2s}.form-input[data-v-4f8703bd]:focus{outline:none;border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}@media (max-width: 768px){.toolbar-row[data-v-4f8703bd]{flex-direction:column;align-items:stretch}.toolbar-left[data-v-4f8703bd],.toolbar-right[data-v-4f8703bd]{flex-wrap:wrap}.select-input[data-v-4f8703bd]{min-width:0;flex:1}.audio-modal-box[data-v-4f8703bd]{width:90%}.td-filename[data-v-4f8703bd]{max-width:120px}}
@@ -0,0 +1 @@
1
+ @keyframes glassEnter-ca949926{0%{opacity:0;transform:translateY(20px) scale(.98);-webkit-backdrop-filter:blur(0px);backdrop-filter:blur(0px)}to{opacity:1;transform:translateY(0) scale(1);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}}@keyframes glassGlowPulse-ca949926{0%,to{box-shadow:0 0 0 0 var(--glass-border-glow)}50%{box-shadow:0 0 16px var(--glass-border-glow)}}@keyframes spinGlow-ca949926{to{transform:rotate(360deg)}}@keyframes slideIn-ca949926{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn-ca949926{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideUp-ca949926{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes pulse-ca949926{0%,to{opacity:1}50%{opacity:.6}}.group-manage[data-v-ca949926]{padding:20px;min-height:100vh;background:transparent;animation:glassEnter-ca949926 .6s cubic-bezier(.25,.46,.45,.94)}[data-v-ca949926] .message-toast{position:fixed;top:20px;right:20px;padding:12px 20px;border-radius:12px;color:#fff;font-weight:500;z-index:9999;animation:slideIn-ca949926 .3s ease;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border)}[data-v-ca949926] .message-toast.success{background:#4caf50d9}[data-v-ca949926] .message-toast.error{background:#0a84ffd9}[data-v-ca949926] .message-toast.info{background:#2196f3d9}.page-header[data-v-ca949926]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:nowrap}.page-title[data-v-ca949926]{font-size:24px;color:var(--diablo-text);margin:0;flex-shrink:0;text-shadow:0 0 20px var(--glass-border-glow),0 0 40px rgba(10,132,255,.15)}.header-actions[data-v-ca949926]{display:flex;gap:8px;align-items:center;flex-shrink:0}.form-input[data-v-ca949926]{padding:8px 12px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;outline:none;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.form-input[data-v-ca949926]:focus{border-color:var(--glass-border-hover);box-shadow:0 0 0 3px var(--glass-border-glow),var(--glass-inner-glow);background:var(--glass-bg-active)}.form-input[data-v-ca949926]:disabled{opacity:.5;cursor:not-allowed}.input-name[data-v-ca949926]{width:200px}.input-name[data-v-ca949926]:focus{outline:none;border-color:var(--glass-border-hover);box-shadow:0 0 0 3px var(--glass-border-glow),var(--glass-inner-glow);background:var(--glass-bg-active)}.add-btn[data-v-ca949926],.group-play-btn[data-v-ca949926],.play-list-btn[data-v-ca949926]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);border-radius:10px;font-size:13px;font-weight:500;cursor:pointer;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.add-btn[data-v-ca949926]:hover:not(:disabled),.group-play-btn[data-v-ca949926]:hover:not(:disabled),.play-list-btn[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}.add-btn svg[data-v-ca949926],.group-play-btn svg[data-v-ca949926],.play-list-btn svg[data-v-ca949926]{width:16px;height:16px}button[data-v-ca949926]:disabled{opacity:.5;cursor:not-allowed}.loading-container[data-v-ca949926]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;background:var(--glass-bg);border-radius:16px;border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.loading-spinner[data-v-ca949926]{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:var(--diablo-primary);border-radius:50%;animation:spinGlow-ca949926 .8s linear infinite;box-shadow:0 0 12px var(--glass-border-glow)}.empty-state[data-v-ca949926]{text-align:center;padding:60px 20px;color:var(--diablo-text-muted)}.group-list-container[data-v-ca949926]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;overflow:auto;max-height:calc(100vh - 160px);backdrop-filter:blur(var(--glass-blur)) saturate(1.2);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.2);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.list-header[data-v-ca949926]{display:grid;grid-template-columns:60px 1fr 100px auto;background:var(--glass-bg);border-bottom:1px solid var(--glass-border);padding:12px 16px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.header-cell[data-v-ca949926]{font-weight:600;color:var(--diablo-text);font-size:13px}.group-item[data-v-ca949926]{display:grid;grid-template-columns:60px 1fr 100px auto;padding:12px 16px;border-bottom:1px solid var(--glass-border);background:var(--glass-bg);border-radius:12px;margin:4px 8px;transition:all .4s cubic-bezier(.25,.46,.45,.94);border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.group-item[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}.cell[data-v-ca949926]{display:flex;align-items:center;color:var(--diablo-text);font-size:13px}.cell-name[data-v-ca949926]{font-weight:500}.cell-device-count[data-v-ca949926]{justify-content:center}.cell-actions[data-v-ca949926]{gap:8px;display:flex;flex-wrap:wrap}.action-btn[data-v-ca949926]{padding:6px 12px;border:1px solid var(--glass-border);border-radius:8px;background:transparent;color:var(--diablo-text);font-size:12px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.action-btn[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);color:#fff;transform:translateY(-1px);box-shadow:0 0 12px var(--glass-border-glow)}.action-btn[data-v-ca949926]:disabled{opacity:.5;cursor:not-allowed}.btn-delete[data-v-ca949926]:hover:not(:disabled){background:#0a84ff4d;border-color:#0a84ff80;box-shadow:0 0 12px #0a84ff4d}.view-mode-bar[data-v-ca949926]{display:flex;justify-content:flex-end;padding:12px 16px;border-bottom:1px solid var(--glass-border)}.view-mode-toggle[data-v-ca949926]{display:flex;border:1px solid var(--glass-border);border-radius:8px;overflow:hidden;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.view-mode-btn[data-v-ca949926]{display:flex;align-items:center;justify-content:center;padding:6px 10px;background:transparent;border:none;color:var(--diablo-text-muted);cursor:pointer;transition:all .2s ease}.view-mode-btn.active[data-v-ca949926]{background:var(--glass-bg-hover);color:var(--diablo-primary)}.view-mode-btn[data-v-ca949926]:hover:not(.active){color:var(--diablo-text);background:var(--glass-bg)}.group-card-grid[data-v-ca949926]{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;padding:16px}.group-card[data-v-ca949926]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;padding:16px;transition:all .4s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);display:flex;flex-direction:column;gap:12px}.group-card[data-v-ca949926]:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}.group-card-header[data-v-ca949926]{display:flex;align-items:center;justify-content:space-between}.group-card-index[data-v-ca949926]{font-size:12px;color:var(--diablo-text-muted);font-weight:600}.group-card-count[data-v-ca949926]{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--diablo-primary);padding:2px 8px;background:#0a84ff1a;border-radius:10px;border:1px solid rgba(10,132,255,.2)}.group-card-name[data-v-ca949926]{font-size:15px;font-weight:600;color:var(--diablo-text);word-break:break-all;line-height:1.4}.group-card-actions[data-v-ca949926]{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}.card-action-btn[data-v-ca949926]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:8px;color:var(--diablo-text-muted);cursor:pointer;transition:all .2s ease}.card-action-btn[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);transform:translateY(-1px)}.card-action-btn[data-v-ca949926]:disabled{opacity:.4;cursor:not-allowed}.card-action-btn.card-action-play[data-v-ca949926]{color:#27ae60}.card-action-btn.card-action-play[data-v-ca949926]:hover:not(:disabled){background:#27ae6026;border-color:#27ae60;color:#27ae60}.card-action-btn.card-action-delete[data-v-ca949926]{color:#e74c3c}.card-action-btn.card-action-delete[data-v-ca949926]:hover:not(:disabled){background:#e74c3c26;border-color:#e74c3c}.modal-overlay[data-v-ca949926]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content[data-v-ca949926]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;width:90%;max-width:800px;max-height:90vh;overflow-y:auto;animation:fadeIn-ca949926 .3s ease;backdrop-filter:blur(var(--glass-blur-heavy)) saturate(1.3);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(1.3);box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow)}.dialog-header[data-v-ca949926]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--glass-bg);border-bottom:1px solid var(--glass-border);border-radius:16px 16px 0 0;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.dialog-header h3[data-v-ca949926]{margin:0;font-size:18px;font-weight:600;color:var(--diablo-text)}.close-btn[data-v-ca949926]{background:var(--glass-bg);border:1px solid var(--glass-border);color:var(--diablo-text);cursor:pointer;padding:4px;border-radius:8px;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.close-btn[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 12px var(--glass-border-glow),var(--glass-inner-glow);color:var(--diablo-primary)}.modal-body[data-v-ca949926]{padding:20px;background:transparent}.device-search-container[data-v-ca949926]{margin-bottom:16px}.device-search-input[data-v-ca949926]{width:100%}.search-stats[data-v-ca949926]{margin-top:8px;font-size:12px;color:var(--diablo-text-muted)}.search-stats span[data-v-ca949926]{font-weight:500;color:var(--diablo-accent)}.modal-footer[data-v-ca949926]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--glass-border);background:var(--glass-bg);border-radius:0 0 16px 16px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.modal-footer .btn[data-v-ca949926]{padding:8px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.modal-footer .btn[data-v-ca949926]:disabled{opacity:.5;cursor:not-allowed}.modal-footer .btn-primary[data-v-ca949926],.modal-footer .btn-save[data-v-ca949926]{background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border)}.modal-footer .btn-primary[data-v-ca949926]:hover:not(:disabled),.modal-footer .btn-save[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}.modal-footer .btn-cancel[data-v-ca949926]{background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border)}.modal-footer .btn-cancel[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.device-selector[data-v-ca949926]{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-height:500px}.device-list[data-v-ca949926],.selected-devices[data-v-ca949926]{border:1px solid var(--glass-border);border-radius:12px;padding:16px;background:var(--glass-bg);display:flex;flex-direction:column;max-height:500px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.device-list h4[data-v-ca949926],.selected-devices h4[data-v-ca949926]{margin:0 0 12px;color:var(--diablo-text);font-size:14px;flex-shrink:0}.device-list-content[data-v-ca949926],.selected-devices-content[data-v-ca949926]{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:8px;min-height:100px;max-height:400px}.device-list-content[data-v-ca949926]::-webkit-scrollbar,.selected-devices-content[data-v-ca949926]::-webkit-scrollbar{width:8px}.device-list-content[data-v-ca949926]::-webkit-scrollbar-track,.selected-devices-content[data-v-ca949926]::-webkit-scrollbar-track{background:transparent;border-radius:4px}.device-list-content[data-v-ca949926]::-webkit-scrollbar-thumb,.selected-devices-content[data-v-ca949926]::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:4px}.device-list-content[data-v-ca949926]::-webkit-scrollbar-thumb:hover,.selected-devices-content[data-v-ca949926]::-webkit-scrollbar-thumb:hover{background:var(--glass-border-hover)}.device-item[data-v-ca949926]{padding:8px;margin-bottom:6px;border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;border:1px solid var(--glass-border);transition:all .4s cubic-bezier(.25,.46,.45,.94)}.device-item label[data-v-ca949926]{cursor:pointer;display:flex;align-items:center;gap:8px}.device-item.selected[data-v-ca949926]{background:var(--glass-bg-hover);display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-color:var(--glass-border-hover)}.remove-btn[data-v-ca949926]{background:#0a84ff33;border:none;color:var(--diablo-text);width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;transition:all .4s cubic-bezier(.25,.46,.45,.94)}.remove-btn[data-v-ca949926]:hover{background:#0a84ff66;color:#fff;box-shadow:0 0 8px #0a84ff4d}.no-search-result[data-v-ca949926],.empty-selected[data-v-ca949926]{padding:40px 20px;text-align:center;color:var(--diablo-text-muted);font-size:14px}.device-item label[data-v-ca949926]{cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:flex;align-items:center;gap:8px;margin:-8px -12px;width:calc(100% + 24px)}.device-item label[data-v-ca949926]:hover{background:var(--glass-tint-hover)}.device-item input[type=checkbox][data-v-ca949926]{cursor:pointer;margin:0;width:16px;height:16px}.device-list-content[data-v-ca949926]:after,.selected-devices-content[data-v-ca949926]:after{content:"";position:sticky;bottom:0;left:0;right:0;height:30px;background:linear-gradient(transparent,var(--glass-bg));pointer-events:none;display:none}.device-list-content[style*="overflow-y: scroll"][data-v-ca949926]:after,.device-list-content[style*="overflow-y: auto"][data-v-ca949926]:after,.selected-devices-content[style*="overflow-y: scroll"][data-v-ca949926]:after,.selected-devices-content[style*="overflow-y: auto"][data-v-ca949926]:after{display:block}.form-group[data-v-ca949926]{margin-bottom:16px}.form-group label[data-v-ca949926]{display:block;margin-bottom:8px;color:var(--diablo-text);font-size:14px;font-weight:500}.form-group-inline[data-v-ca949926]{display:flex;align-items:center;gap:12px}.form-group-inline label[data-v-ca949926]{display:inline;margin-bottom:0;flex-shrink:0;white-space:nowrap}.video-url-input[data-v-ca949926]{flex:1;min-width:400px}.input-field[data-v-ca949926]{width:100%;padding:10px 12px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);font-size:14px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.input-field[data-v-ca949926]:focus{outline:none;border-color:var(--glass-border-hover);box-shadow:0 0 0 3px var(--glass-border-glow),var(--glass-inner-glow);background:var(--glass-bg-active)}.video-container[data-v-ca949926]{display:flex;justify-content:center;background:var(--glass-bg);border-radius:12px;padding:20px;border:1px solid var(--glass-border)}.video-container video[data-v-ca949926]{max-width:100%;border-radius:12px}.no-video[data-v-ca949926]{text-align:center;padding:40px;color:var(--diablo-text-muted)}.drawer-overlay[data-v-ca949926]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1000}.drawer-content[data-v-ca949926]{position:absolute;bottom:0;left:0;right:0;background:var(--glass-bg-card);border:1px solid var(--glass-border);border-top-left-radius:16px;border-top-right-radius:16px;max-height:50vh;overflow-y:auto;animation:slideUp-ca949926 .3s ease;backdrop-filter:blur(var(--glass-blur-heavy)) saturate(1.3);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(1.3);box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow)}.drawer-title[data-v-ca949926]{padding:16px 20px;font-size:18px;font-weight:600;color:var(--diablo-text);border-bottom:1px solid var(--glass-border);margin:0;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.drawer-body[data-v-ca949926]{padding:20px}.drawer-footer[data-v-ca949926]{padding:16px 20px;border-top:1px solid var(--glass-border);text-align:right;background:var(--glass-bg)}.play-items[data-v-ca949926]{max-height:300px;overflow-y:auto}.play-item[data-v-ca949926]{padding:12px;border:1px solid var(--glass-border);border-radius:12px;margin-bottom:8px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.play-item[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.play-item p[data-v-ca949926]{margin:4px 0;color:var(--diablo-text);font-size:13px}.btn-stop[data-v-ca949926],.btn-close[data-v-ca949926]{padding:8px 16px;border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;font-size:14px;background:var(--glass-bg);color:var(--diablo-text);margin-top:8px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));transition:all .4s cubic-bezier(.25,.46,.45,.94)}.btn-stop[data-v-ca949926]:hover,.btn-close[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}.modal-large-content[data-v-ca949926]{max-width:1000px}.modal-play-content[data-v-ca949926]{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;max-height:450px}.file-search-container[data-v-ca949926]{margin-bottom:16px}.file-search-input[data-v-ca949926]{width:100%}.file-selector[data-v-ca949926],.selected-files-panel[data-v-ca949926]{border:1px solid var(--glass-border);border-radius:12px;padding:16px;background:var(--glass-bg);display:flex;flex-direction:column;max-height:450px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.file-selector h4[data-v-ca949926],.selected-files-panel h4[data-v-ca949926]{margin:0 0 12px;color:var(--diablo-text);font-size:14px;flex-shrink:0}.file-list-content[data-v-ca949926],.selected-files-content[data-v-ca949926]{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:8px;min-height:100px;max-height:380px}.file-item[data-v-ca949926]{padding:10px;margin-bottom:8px;border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.file-item[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translate(4px);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow)}.file-item.selected[data-v-ca949926]{border-color:var(--glass-border-hover);background:var(--glass-tint);box-shadow:0 0 12px var(--glass-border-glow),var(--glass-inner-glow)}.file-info[data-v-ca949926]{display:flex;flex-direction:column;gap:4px}.file-name[data-v-ca949926]{font-size:13px;font-weight:500;word-break:break-all}.file-meta[data-v-ca949926]{display:flex;gap:12px;font-size:12px;color:var(--diablo-text-muted)}.selected-file-item[data-v-ca949926]{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;margin-bottom:8px;border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);border:1px solid var(--glass-border);cursor:move;transition:all .4s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.selected-file-item[data-v-ca949926]:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-hover);box-shadow:var(--glass-shadow),0 0 12px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-1px)}.selected-file-item.dragging[data-v-ca949926]{opacity:.5;border-style:dashed;background:var(--glass-tint)}.selected-file-info[data-v-ca949926]{display:flex;align-items:center;gap:8px;flex:1}.file-number[data-v-ca949926]{font-size:12px;font-weight:600;color:var(--diablo-primary);min-width:20px}.selected-file-item .file-name[data-v-ca949926]{font-size:13px;word-break:break-all}.file-actions[data-v-ca949926]{display:flex;gap:4px}.file-action-btn[data-v-ca949926]{width:24px;height:24px;border:1px solid var(--glass-border);border-radius:6px;background:transparent;color:var(--diablo-text);font-size:12px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:flex;align-items:center;justify-content:center}.file-action-btn[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 8px var(--glass-border-glow);color:#fff}.file-action-btn[data-v-ca949926]:disabled{opacity:.3;cursor:not-allowed}.file-action-btn.btn-remove[data-v-ca949926]:hover:not(:disabled){background:#0a84ff4d;border-color:#0a84ff80;box-shadow:0 0 8px #0a84ff4d}.empty-selected-files[data-v-ca949926]{text-align:center;padding:40px 20px;color:var(--diablo-text-muted)}.empty-selected-files p[data-v-ca949926]{margin:4px 0;font-size:13px}.empty-selected-files .hint[data-v-ca949926]{font-size:12px;color:var(--diablo-text-muted);opacity:.7}.play-settings[data-v-ca949926]{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px;background:var(--glass-bg);border-radius:12px;border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.setting-item[data-v-ca949926]{display:flex;flex-direction:column;gap:4px}.setting-item label[data-v-ca949926]{font-size:12px;color:var(--diablo-text);font-weight:500;white-space:nowrap}.setting-select[data-v-ca949926],.setting-input[data-v-ca949926]{padding:6px 8px;background:var(--glass-bg);font-size:12px;border:1px solid var(--glass-border);border-radius:8px;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.setting-select option[data-v-ca949926]{background:var(--glass-bg-card);color:var(--diablo-text)}.file-list-content[data-v-ca949926]::-webkit-scrollbar,.selected-files-content[data-v-ca949926]::-webkit-scrollbar{width:8px}.file-list-content[data-v-ca949926]::-webkit-scrollbar-track,.selected-files-content[data-v-ca949926]::-webkit-scrollbar-track{background:transparent;border-radius:4px}.file-list-content[data-v-ca949926]::-webkit-scrollbar-thumb,.selected-files-content[data-v-ca949926]::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:4px}.file-list-content[data-v-ca949926]::-webkit-scrollbar-thumb:hover,.selected-files-content[data-v-ca949926]::-webkit-scrollbar-thumb:hover{background:var(--glass-border-hover)}.group-select-list[data-v-ca949926]{max-height:400px;overflow-y:auto}.group-select-item[data-v-ca949926]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;margin-bottom:8px;border-radius:12px;background:var(--glass-bg);color:var(--diablo-text);cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.group-select-item[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translate(4px);box-shadow:var(--glass-shadow-hover),0 0 16px var(--glass-border-glow),var(--glass-inner-glow)}.group-select-info[data-v-ca949926]{display:flex;align-items:center;gap:8px}.group-select-name[data-v-ca949926]{font-size:14px;font-weight:500}.group-select-count[data-v-ca949926]{font-size:12px;color:var(--diablo-text-muted)}.group-select-arrow[data-v-ca949926]{font-size:18px;color:var(--diablo-primary);font-weight:700}.duration-display[data-v-ca949926]{display:flex;align-items:baseline;gap:2px}.duration-value[data-v-ca949926]{font-size:16px;font-weight:600;color:var(--diablo-primary);min-width:40px}.duration-unit[data-v-ca949926]{font-size:11px;color:var(--diablo-text-muted)}.duration-calc-info[data-v-ca949926]{margin-top:2px}.duration-calc-info small[data-v-ca949926]{font-size:10px;color:var(--diablo-text-muted);line-height:1.2}.number-input-group[data-v-ca949926]{display:flex;align-items:center;gap:2px}.number-btn[data-v-ca949926]{width:28px;height:28px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:14px;font-weight:600;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);display:flex;align-items:center;justify-content:center;flex-shrink:0;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.number-btn[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);border-color:var(--glass-border-hover);color:#fff;box-shadow:0 0 8px var(--glass-border-glow)}.number-btn[data-v-ca949926]:disabled{opacity:.3;cursor:not-allowed}.number-btn.btn-minus[data-v-ca949926]{color:var(--diablo-primary)}.number-btn.btn-plus[data-v-ca949926]{color:var(--diablo-accent)}.number-btn.btn-minus[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);box-shadow:0 0 8px var(--glass-border-glow)}.number-btn.btn-plus[data-v-ca949926]:hover:not(:disabled){background:var(--glass-bg-hover);box-shadow:0 0 8px var(--glass-border-glow)}.setting-number[data-v-ca949926]{width:50px;text-align:center;padding:6px;font-size:12px;font-weight:600;flex-shrink:0}.setting-hint[data-v-ca949926]{font-size:10px;color:var(--diablo-text-muted);margin-top:2px;line-height:1.2}.interval-input-group[data-v-ca949926]{display:flex;flex-direction:column;gap:8px}.interval-presets[data-v-ca949926]{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.toggle-quick-select-btn[data-v-ca949926]{padding:4px 8px;border:1px solid var(--glass-border);border-radius:8px;background:var(--glass-bg);color:var(--diablo-text);font-size:12px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);min-width:40px;flex-shrink:0;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.toggle-quick-select-btn[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 8px var(--glass-border-glow);color:#fff}.interval-preset-btn[data-v-ca949926]{padding:4px 8px;border:1px solid var(--glass-border);border-radius:6px;background:var(--glass-bg);color:var(--diablo-text);font-size:11px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);flex-shrink:0}.interval-preset-btn[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 8px var(--glass-border-glow);color:#fff}.interval-preset-btn.active[data-v-ca949926]{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 12px var(--glass-border-glow),var(--glass-inner-glow);color:#fff;font-weight:600}.duration-bracket[data-v-ca949926]{font-size:10px;color:var(--diablo-text-muted);margin-left:4px}.stop-play-loading-overlay[data-v-ca949926]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-ca949926 .3s ease}.stop-play-loading-content[data-v-ca949926]{text-align:center;color:#fff;background:var(--glass-bg);padding:40px;border-radius:16px;border:1px solid var(--glass-border);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow)}.loading-spinner[data-v-ca949926]{width:60px;height:60px;border:4px solid var(--glass-border);border-top-color:var(--diablo-primary);border-radius:50%;margin:0 auto 20px;animation:spinGlow-ca949926 1s linear infinite;box-shadow:0 0 16px var(--glass-border-glow),var(--glass-inner-glow)}.loading-spinner-delayed[data-v-ca949926]{width:40px;height:40px;border:3px solid var(--glass-border);border-top-color:#3498db;border-radius:50%;margin:-45px auto 25px;animation:spinGlow-ca949926 .8s linear infinite;box-shadow:0 0 12px #3498db4d}.loading-text[data-v-ca949926]{font-size:16px;color:var(--diablo-text);animation:pulse-ca949926 1.5s ease-in-out infinite}.confirm-dialog-overlay[data-v-ca949926]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9998;animation:fadeIn-ca949926 .2s ease}.confirm-dialog-content[data-v-ca949926]{background:var(--glass-bg-card);border:1px solid var(--glass-border);border-radius:16px;min-width:400px;max-width:500px;box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow);animation:slideIn-ca949926 .3s ease;backdrop-filter:blur(var(--glass-blur-heavy)) saturate(1.3);-webkit-backdrop-filter:blur(var(--glass-blur-heavy)) saturate(1.3)}.confirm-dialog-title[data-v-ca949926]{margin:0;padding:20px 20px 10px;font-size:18px;font-weight:600;color:var(--diablo-text);border-bottom:1px solid var(--glass-border)}.confirm-dialog-body[data-v-ca949926]{padding:20px}.confirm-dialog-body p[data-v-ca949926]{margin:0;font-size:14px;color:var(--diablo-text-muted);line-height:1.6}.confirm-dialog-footer[data-v-ca949926]{display:flex;justify-content:flex-end;gap:12px;padding:15px 20px 20px;border-top:1px solid var(--glass-border)}.confirm-dialog-footer .btn-cancel[data-v-ca949926]{padding:8px 20px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);font-size:14px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.confirm-dialog-footer .btn-cancel[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.confirm-dialog-footer .btn-confirm[data-v-ca949926]{padding:8px 20px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);font-size:14px;cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.confirm-dialog-footer .btn-confirm[data-v-ca949926]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:0 0 16px var(--glass-border-glow),var(--glass-inner-glow);transform:translateY(-2px)}@media (max-width: 768px){.group-manage[data-v-ca949926]{padding:12px}.page-header[data-v-ca949926]{flex-direction:column;align-items:flex-start;gap:12px;margin-bottom:16px}.page-title[data-v-ca949926]{font-size:17px}.header-actions[data-v-ca949926]{flex-wrap:wrap;width:100%;gap:6px}.input-name[data-v-ca949926]{width:100%;min-width:unset;font-size:16px}.add-btn[data-v-ca949926],.group-play-btn[data-v-ca949926],.play-list-btn[data-v-ca949926]{flex:1;justify-content:center;min-width:0;padding:8px 10px;font-size:12px}.add-btn svg[data-v-ca949926],.group-play-btn svg[data-v-ca949926],.play-list-btn svg[data-v-ca949926]{width:14px;height:14px}.group-grid[data-v-ca949926]{grid-template-columns:1fr}.group-card-grid[data-v-ca949926]{grid-template-columns:1fr;padding:12px;gap:12px}.group-card[data-v-ca949926]{padding:14px}.group-card-header[data-v-ca949926]{flex-direction:column;align-items:flex-start;gap:8px}.group-card-actions[data-v-ca949926]{width:100%;justify-content:flex-end}.card-action-btn[data-v-ca949926]{width:36px;height:36px}.device-selector[data-v-ca949926]{grid-template-columns:1fr;gap:12px;max-height:none}.device-list[data-v-ca949926],.selected-devices[data-v-ca949926]{max-height:200px}.device-list-content[data-v-ca949926],.selected-devices-content[data-v-ca949926]{max-height:160px;min-height:60px}.form-group-inline[data-v-ca949926]{flex-direction:column;align-items:stretch;gap:8px}.video-url-input[data-v-ca949926]{min-width:unset;width:100%}.modal-overlay[data-v-ca949926]{align-items:flex-end}.modal-large-content[data-v-ca949926]{max-width:100%;width:100%;max-height:95vh;border-radius:16px 16px 0 0}.modal-play-content[data-v-ca949926]{grid-template-columns:1fr;max-height:none;gap:12px}.file-selector[data-v-ca949926],.selected-files-panel[data-v-ca949926]{max-height:220px;padding:12px}.file-selector h4[data-v-ca949926],.selected-files-panel h4[data-v-ca949926]{font-size:13px;margin-bottom:8px}.file-list-content[data-v-ca949926],.selected-files-content[data-v-ca949926]{max-height:160px;min-height:60px}.file-item[data-v-ca949926]{padding:10px 12px;margin-bottom:6px}.file-name[data-v-ca949926]{font-size:14px}.file-meta[data-v-ca949926]{font-size:11px;gap:8px}.selected-file-item[data-v-ca949926]{padding:8px 10px;margin-bottom:6px}.file-action-btn[data-v-ca949926]{width:28px;height:28px;font-size:14px}.play-settings[data-v-ca949926]{grid-template-columns:1fr 1fr;gap:12px;padding:12px}.setting-item[data-v-ca949926]{gap:6px}.setting-item label[data-v-ca949926]{font-size:12px}.number-input-group[data-v-ca949926]{gap:3px}.number-btn[data-v-ca949926]{width:32px;height:32px;font-size:16px}.setting-number[data-v-ca949926]{width:44px;padding:6px 4px;font-size:13px}.toggle-quick-select-btn[data-v-ca949926]{padding:6px 10px;font-size:12px;color:#0a84ff;background:#0a84ff1a;border-color:#0a84ff4d}.toggle-quick-select-btn[data-v-ca949926]:hover{color:#0a84ff;background:#0a84ff33}.interval-presets[data-v-ca949926]{gap:6px}.interval-preset-btn[data-v-ca949926]{padding:6px 10px;font-size:12px;color:var(--diablo-text)}.interval-preset-btn.active[data-v-ca949926]{color:#fff;background:#0a84ff;border-color:#0a84ff}.duration-display[data-v-ca949926]{gap:4px}.duration-value[data-v-ca949926]{font-size:14px}.duration-bracket[data-v-ca949926]{font-size:9px}.confirm-dialog-overlay[data-v-ca949926]{padding:10px}.confirm-dialog-content[data-v-ca949926]{min-width:unset;max-width:95vw;width:90%}.confirm-dialog[data-v-ca949926]{max-width:95vw;max-height:90vh}.confirm-dialog-body[data-v-ca949926]{padding:16px;max-height:calc(90vh - 120px);overflow-y:auto}.confirm-dialog-header[data-v-ca949926]{padding:14px 16px}.confirm-dialog-header h3[data-v-ca949926]{font-size:15px}.confirm-dialog-footer[data-v-ca949926]{padding:14px 16px}.modal-content[data-v-ca949926]{width:95%;max-height:92vh;border-radius:14px}.dialog-header[data-v-ca949926]{padding:14px 16px;border-radius:14px 14px 0 0}.dialog-header h3[data-v-ca949926]{font-size:16px}.modal-body[data-v-ca949926]{padding:16px}.modal-footer[data-v-ca949926]{padding:12px 16px;gap:8px}.modal-footer .btn[data-v-ca949926]{flex:1;text-align:center;padding:10px 16px}.group-select-list[data-v-ca949926]{max-height:300px}.group-select-item[data-v-ca949926]{padding:14px 16px}.group-select-name[data-v-ca949926]{font-size:15px}}@media (max-width: 480px){.group-manage[data-v-ca949926]{padding:8px}.page-title[data-v-ca949926]{font-size:16px}.group-card[data-v-ca949926]{padding:12px}.group-name[data-v-ca949926]{font-size:14px}.add-btn[data-v-ca949926],.group-play-btn[data-v-ca949926],.play-list-btn[data-v-ca949926]{font-size:11px;padding:7px 8px}.card-action-btn[data-v-ca949926]{width:34px;height:34px}.play-settings[data-v-ca949926]{grid-template-columns:1fr;gap:12px}.file-selector[data-v-ca949926],.selected-files-panel[data-v-ca949926]{max-height:180px}.file-list-content[data-v-ca949926],.selected-files-content[data-v-ca949926]{max-height:130px}}
@@ -0,0 +1 @@
1
+ @keyframes glassEnter-f653028d{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes broadcastPulse-f653028d{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes ringPulse1-f653028d{0%{transform:scale(1);opacity:.4}to{transform:scale(1.6);opacity:0}}@keyframes ringPulse2-f653028d{0%{transform:scale(1);opacity:.3}to{transform:scale(1.8);opacity:0}}@keyframes dotBlink-f653028d{0%,to{opacity:1}50%{opacity:.4}}@keyframes glowShimmer-f653028d{0%{background-position:-200% center}to{background-position:200% center}}.broadcast-page[data-v-f653028d]{padding:20px;min-height:100vh;height:100vh;overflow:auto;box-sizing:border-box;animation:glassEnter-f653028d .6s cubic-bezier(.25,.46,.45,.94)}.top-row[data-v-f653028d]{display:flex;gap:20px;margin-bottom:20px}.top-row-left[data-v-f653028d]{flex:3;min-width:0}.top-row-right[data-v-f653028d]{flex:2;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.page-header[data-v-f653028d]{margin-bottom:24px}.page-title[data-v-f653028d]{font-size:22px;font-weight:700;color:var(--diablo-text);margin:0;text-shadow:0 0 20px var(--glass-border-glow),0 0 40px rgba(10,132,255,.12);letter-spacing:.5px}.glass-section[data-v-f653028d]{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:16px;padding:22px;margin-bottom:20px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);transition:all .4s cubic-bezier(.25,.46,.45,.94)}.glass-section[data-v-f653028d]:hover{border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),0 0 20px var(--glass-border-glow),var(--glass-inner-glow)}.section-title[data-v-f653028d]{font-size:15px;font-weight:600;color:var(--diablo-text);margin:0 0 18px;display:flex;align-items:center;gap:8px}.section-title[data-v-f653028d]:before{content:"";width:3px;height:16px;background:var(--diablo-primary);border-radius:2px;box-shadow:0 0 8px var(--diablo-primary)}.source-row[data-v-f653028d]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.source-select[data-v-f653028d]{flex:1;max-width:400px;cursor:pointer}.empty-hint[data-v-f653028d]{font-size:13px;color:var(--diablo-text-muted);text-align:center;padding:24px;border:1px dashed var(--glass-border);border-radius:12px;margin-top:8px}.connect-mic-area[data-v-f653028d]{display:flex;justify-content:center;padding:20px 0}.connect-mic-btn[data-v-f653028d]{display:inline-flex;align-items:center;gap:10px;padding:14px 28px;background:linear-gradient(135deg,#0a84ff1a,#0a84ff0a);border:1px solid rgba(10,132,255,.3);border-radius:14px;color:var(--diablo-primary);font-size:15px;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));user-select:none;-webkit-user-select:none}.connect-mic-btn[data-v-f653028d]:hover{background:linear-gradient(135deg,#0a84ff2e,#0a84ff14);border-color:var(--diablo-primary);box-shadow:0 0 20px #0a84ff33,var(--glass-inner-glow);transform:translateY(-2px)}.connect-mic-btn[data-v-f653028d]:active{transform:translateY(0)}.connect-mic-btn svg[data-v-f653028d]{width:20px;height:20px;filter:drop-shadow(0 0 4px rgba(10,132,255,.4))}.volume-row[data-v-f653028d]{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px}.volume-label[data-v-f653028d]{font-size:12px;color:var(--diablo-text-muted);font-weight:500;white-space:nowrap}.volume-slider[data-v-f653028d]{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(90deg,var(--glass-border),rgba(10,132,255,.3));border-radius:3px;outline:none;transition:all .2s}:is()[data-v-f653028d]{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--diablo-primary);cursor:pointer;border:3px solid var(--glass-bg);box-shadow:0 0 10px #0a84ff80,0 2px 6px #0003;transition:all .2s}:is()[data-v-f653028d]:hover{transform:scale(1.15);box-shadow:0 0 16px #0a84ff99,0 2px 8px #0000004d}.volume-slider[data-v-f653028d]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--diablo-primary);cursor:pointer;border:3px solid var(--glass-bg);box-shadow:0 0 10px #0a84ff80}.volume-value[data-v-f653028d]{font-size:12px;color:var(--diablo-primary);font-weight:600;min-width:40px;text-align:right}.waveform-container[data-v-f653028d]{background:linear-gradient(135deg,#0a84ff0a,#0a84ff14,#0a84ff0a);border:1px solid var(--glass-border);border-radius:12px;overflow:hidden;padding:10px;position:relative}.waveform-container[data-v-f653028d]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(10,132,255,.05),transparent);background-size:200% 100%;animation:glowShimmer-f653028d 3s linear infinite;pointer-events:none}.waveform-canvas[data-v-f653028d]{display:block;width:100%;height:80px;position:relative;z-index:1}.group-bar[data-v-f653028d]{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}.group-label[data-v-f653028d]{font-size:12px;color:var(--diablo-text-muted);font-weight:500;margin-right:4px}.group-chip[data-v-f653028d]{padding:5px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;transition:all .3s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));font-weight:500}.group-chip[data-v-f653028d]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);transform:translateY(-1px);box-shadow:0 0 8px var(--glass-border-glow)}.group-chip.group-active[data-v-f653028d]{background:#0a84ff1f;border-color:var(--diablo-primary);color:var(--diablo-primary);box-shadow:0 0 12px #0a84ff33;font-weight:600}.device-toolbar[data-v-f653028d]{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.toolbar-btn[data-v-f653028d]{padding:6px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;color:var(--diablo-text-muted);font-size:12px;cursor:pointer;transition:all .3s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));font-weight:500}.toolbar-btn[data-v-f653028d]:hover{background:var(--glass-bg-hover);color:var(--diablo-text);border-color:var(--glass-border-hover);transform:translateY(-1px);box-shadow:0 0 8px var(--glass-border-glow)}.selected-count[data-v-f653028d]{font-size:12px;color:var(--diablo-primary);font-weight:600;margin-left:auto;padding:4px 12px;background:#0a84ff14;border-radius:10px;border:1px solid rgba(10,132,255,.15)}.device-filter[data-v-f653028d]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;transition:all .3s;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.device-filter[data-v-f653028d]:focus-within{border-color:var(--glass-border-glow);box-shadow:0 0 8px var(--glass-border-glow)}.device-filter svg[data-v-f653028d]{color:var(--diablo-text-muted);flex-shrink:0}.device-filter .filter-input[data-v-f653028d]{border:none;background:transparent;padding:2px 0;font-size:12px;color:var(--diablo-text);width:120px}.device-filter .filter-input[data-v-f653028d]:focus{outline:none;box-shadow:none}.device-list[data-v-f653028d]{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;max-height:260px;overflow-y:auto;padding-right:4px}.device-list[data-v-f653028d]::-webkit-scrollbar{width:6px}.device-list[data-v-f653028d]::-webkit-scrollbar-track{background:transparent}:is()[data-v-f653028d]{background:var(--glass-border);border-radius:3px}:is()[data-v-f653028d]:hover{background:var(--glass-border-hover)}.device-item[data-v-f653028d]{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:10px;cursor:pointer;transition:all .3s cubic-bezier(.25,.46,.45,.94);font-size:13px;color:var(--diablo-text);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.device-item[data-v-f653028d]:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);transform:translateY(-1px);box-shadow:0 0 10px var(--glass-border-glow),var(--glass-inner-glow)}.device-item.device-offline[data-v-f653028d]{opacity:.45}.device-item.device-disabled[data-v-f653028d]{cursor:not-allowed;pointer-events:none}.device-item.device-disabled input[type=checkbox][data-v-f653028d]{pointer-events:auto;cursor:not-allowed}.device-item input[type=checkbox][data-v-f653028d]{accent-color:var(--diablo-primary);width:16px;height:16px}.device-name[data-v-f653028d]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.device-status-dot[data-v-f653028d]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.device-status-dot.online[data-v-f653028d]{background:#27ae60;box-shadow:0 0 8px #27ae6099}.device-status-dot.offline[data-v-f653028d]{background:#95a5a6}.broadcast-btn-area[data-v-f653028d]{display:flex;justify-content:center;align-items:center;margin:20px 0;position:relative}.broadcast-btn[data-v-f653028d]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:180px;height:180px;border-radius:50%;background:var(--glass-bg);border:2px solid var(--glass-border);color:var(--diablo-text-muted);cursor:pointer;transition:all .4s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--glass-shadow),var(--glass-inner-glow);user-select:none;-webkit-user-select:none;position:relative;z-index:1}.broadcast-btn.btn-start[data-v-f653028d]{background:linear-gradient(135deg,#0a84ff0f,#0a84ff05)}.broadcast-btn.btn-start:hover:not(.is-disabled)[data-v-f653028d]{border-color:var(--diablo-primary);color:var(--diablo-primary);box-shadow:0 0 30px #0a84ff33,0 0 60px #0a84ff14,var(--glass-inner-glow);transform:scale(1.05)}.broadcast-btn.btn-start:hover:not(.is-disabled) svg[data-v-f653028d]{filter:drop-shadow(0 0 8px rgba(10,132,255,.5))}.broadcast-btn.btn-start.is-disabled[data-v-f653028d]{opacity:.35;cursor:not-allowed;filter:grayscale(.3)}.broadcast-btn.btn-stop[data-v-f653028d]{background:radial-gradient(circle at center,#e74c3c26,#e74c3c0d);border-color:#e74c3c99;color:#e74c3c;box-shadow:0 0 40px #e74c3c40,0 0 80px #e74c3c14,var(--glass-inner-glow);animation:broadcastPulse-f653028d 1.5s ease-in-out infinite}.broadcast-btn.btn-stop[data-v-f653028d]:hover{background:radial-gradient(circle at center,#e74c3c40,#e74c3c14);box-shadow:0 0 50px #e74c3c59,0 0 100px #e74c3c1f,var(--glass-inner-glow)}.broadcast-btn.btn-stop[data-v-f653028d]:before,.broadcast-btn.btn-stop[data-v-f653028d]:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:1px solid rgba(231,76,60,.3);animation:ringPulse1-f653028d 2s ease-out infinite}.broadcast-btn.btn-stop[data-v-f653028d]:after{top:-4px;right:-4px;bottom:-4px;left:-4px;border-color:#e74c3c33;animation:ringPulse2-f653028d 2.5s ease-out infinite;animation-delay:.5s}.broadcast-btn.btn-stop svg[data-v-f653028d]{filter:drop-shadow(0 0 10px rgba(231,76,60,.5))}.broadcast-btn svg[data-v-f653028d]{width:44px;height:44px;transition:filter .3s}.broadcast-btn-text[data-v-f653028d]{font-size:13px;font-weight:600;letter-spacing:.5px}.status-bar[data-v-f653028d]{display:flex;align-items:center;gap:10px;margin-top:16px;padding:12px 16px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:12px;width:100%;box-sizing:border-box;transition:all .3s}.status-dot[data-v-f653028d]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.online[data-v-f653028d]{background:#27ae60;box-shadow:0 0 8px #27ae6099;animation:dotBlink-f653028d 2s ease-in-out infinite}.status-dot.offline[data-v-f653028d]{background:#95a5a6}.status-text[data-v-f653028d]{font-size:13px;color:var(--diablo-text-muted);font-weight:500}.form-input[data-v-f653028d]{padding:8px 12px;border:1px solid var(--glass-border);border-radius:10px;background:var(--glass-bg);color:var(--diablo-text);font-size:13px;transition:all .3s cubic-bezier(.25,.46,.45,.94);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.form-input[data-v-f653028d]:hover{border-color:var(--glass-border-hover)}.form-input[data-v-f653028d]:focus{outline:none;border-color:var(--glass-border-glow);box-shadow:0 0 12px var(--glass-border-glow);background:var(--glass-bg-active, var(--glass-bg))}.empty-state[data-v-f653028d]{padding:32px;text-align:center;color:var(--diablo-text-muted);font-size:14px;border:1px dashed var(--glass-border);border-radius:12px;margin-top:8px}@media (max-width: 768px){.broadcast-page[data-v-f653028d]{padding:10px;min-height:unset}.page-header[data-v-f653028d]{margin-bottom:12px}.page-title[data-v-f653028d]{font-size:17px}.top-row[data-v-f653028d]{flex-direction:column;gap:12px}.top-row-left[data-v-f653028d],.top-row-right[data-v-f653028d]{min-width:unset;width:100%}.glass-section[data-v-f653028d]{padding:14px;border-radius:12px;margin-bottom:12px}.section-title[data-v-f653028d]{font-size:14px;margin-bottom:12px}.source-row[data-v-f653028d]{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:12px}.source-select[data-v-f653028d]{width:100%;max-width:unset;font-size:16px}.connect-mic-btn[data-v-f653028d]{width:100%;justify-content:center;padding:12px 20px;font-size:14px}.volume-row[data-v-f653028d]{flex-wrap:wrap;gap:8px;padding:10px 12px}.volume-slider[data-v-f653028d]{min-width:0;order:2;flex-basis:100%}.volume-slider[data-v-f653028d]::-webkit-slider-thumb{width:24px;height:24px}.volume-value[data-v-f653028d]{order:3}.waveform-container[data-v-f653028d]{padding:8px}.waveform-canvas[data-v-f653028d]{height:60px}.broadcast-btn-area[data-v-f653028d]{margin:12px 0}.broadcast-btn[data-v-f653028d]{width:140px;height:140px;gap:8px}.broadcast-btn svg[data-v-f653028d]{width:34px;height:34px}.broadcast-btn-text[data-v-f653028d]{font-size:12px}.status-bar[data-v-f653028d]{padding:10px 14px;gap:8px}.status-text[data-v-f653028d]{font-size:12px}.group-bar[data-v-f653028d]{margin-bottom:10px;gap:6px}.group-label[data-v-f653028d]{width:100%;font-size:11px;margin-right:0;margin-bottom:2px}.group-chip[data-v-f653028d]{padding:5px 12px;font-size:12px}.device-toolbar[data-v-f653028d]{flex-wrap:wrap;gap:6px}.toolbar-btn[data-v-f653028d]{padding:7px 12px;font-size:12px}.device-filter[data-v-f653028d]{order:-1;width:100%;padding:8px 12px}.device-filter .filter-input[data-v-f653028d]{font-size:16px;width:100%}.selected-count[data-v-f653028d]{margin-left:0;width:100%;text-align:center;order:-2;padding:6px 12px;font-size:12px}.device-list[data-v-f653028d]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;max-height:280px}.device-item[data-v-f653028d]{padding:8px 10px;gap:8px;font-size:12px}.device-item input[type=checkbox][data-v-f653028d]{width:18px;height:18px}.device-status-dot[data-v-f653028d]{width:8px;height:8px}.empty-hint[data-v-f653028d]{padding:16px;font-size:12px}.empty-state[data-v-f653028d]{padding:20px;font-size:13px}}@media (max-width: 480px){.broadcast-page[data-v-f653028d]{padding:6px}.page-title[data-v-f653028d]{font-size:16px}.glass-section[data-v-f653028d]{padding:10px;border-radius:10px;margin-bottom:10px}.broadcast-btn[data-v-f653028d]{width:120px;height:120px}.broadcast-btn svg[data-v-f653028d]{width:28px;height:28px}.broadcast-btn-text[data-v-f653028d]{font-size:11px}.device-list[data-v-f653028d]{grid-template-columns:1fr 1fr}.device-item[data-v-f653028d]{padding:7px 8px;font-size:11px}.waveform-canvas[data-v-f653028d]{height:50px}.group-chip[data-v-f653028d]{padding:4px 10px;font-size:11px}.toolbar-btn[data-v-f653028d]{padding:6px 10px;font-size:11px}.status-bar[data-v-f653028d]{padding:8px 10px}.status-text[data-v-f653028d]{font-size:11px}.connect-mic-btn[data-v-f653028d]{padding:10px 16px;font-size:13px}.connect-mic-btn svg[data-v-f653028d]{width:18px;height:18px}}
@@ -0,0 +1 @@
1
+ import{f as a,o as s,n as t,u as i,F as l,y as e,A as c,M as n,J as o,c as d,I as r,t as v}from"./vue-vendor-BaBirIg_.js";import{u,d as h,a as b}from"./index-npdYRXyk.js";import{x as p,y as g}from"./api-C3Fyph-A.js";import{_ as k}from"./_plugin-vue_export-helper-BCo6x5W8.js";const m={class:"dashboard"},y={class:"page-title diablo-title"},x={class:"stats-grid"},w=["innerHTML"],M={class:"stat-content"},f={class:"stat-label"},C={class:"stat-value"},T=["innerHTML"],H={class:"stat-content"},L={class:"stat-label"},B={class:"stat-value online"},A={class:"stat-card diablo-card"},_=["innerHTML"],D={class:"stat-content"},G={class:"stat-label"},j={class:"stat-value"},z={class:"stat-card diablo-card"},V=["innerHTML"],q={class:"stat-content"},N={class:"stat-label"},I={class:"stat-value"},S={class:"quick-actions"},F={class:"section-title"},J={class:"actions-grid"},P=["innerHTML"],U=["innerHTML"],E=["innerHTML"],K=["innerHTML"],O=["innerHTML"],Q=["innerHTML"],R={class:"mobile-header"},W={class:"mobile-greeting"},X={class:"mobile-subtitle"},Y={class:"mobile-stats-scroll"},Z={class:"mobile-stat-num"},$={class:"mobile-stat-label"},aa={class:"mobile-stat-num"},sa={class:"mobile-stat-label"},ta={class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #5856d6, #3634a3)"}},ia={class:"mobile-stat-num"},la={class:"mobile-stat-label"},ea={class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #ff9500, #cc7700)"}},ca={class:"mobile-stat-num"},na={class:"mobile-stat-label"},oa={class:"mobile-actions"},da={class:"mobile-section-title"},ra={class:"mobile-actions-grid"},va=k(a({__name:"index",setup(a){var k,va;const{t:ua}=u(),ha=o(),ba=h(),pa=b(),ga="undefined"!=typeof window&&!!(null==(va=null==(k=window.Capacitor)?void 0:k.isNativePlatform)?void 0:va.call(k)),ka=d(()=>pa.username||"User"),ma=d(()=>ba.getStats()),ya=r({totalGroups:0,totalTasks:0});function xa(a){return{devices:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>',online:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></svg>',groups:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>',tasks:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/><path d="M8 14l2 2 4-4"/></svg>',add:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>',broadcast:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/><line x1="8" y1="23" x2="16" y2="23"/></svg>',alarm:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>',account:'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>'}[a]||""}return s(async()=>{await ba.fetchDeviceList();try{const a=await p();a.res&&Array.isArray(a.list)&&(ya.totalGroups=a.list.length)}catch{}try{const a=await g();a.res&&Array.isArray(a.taskary)&&(ya.totalTasks=a.taskary.length)}catch{}}),(a,s)=>(v(),t("div",m,[i(ga)?(v(),t(l,{key:1},[e("div",R,[e("div",W,c(i(ua)("dashboard.welcome")||"你好")+","+c(ka.value),1),e("div",X,"ST"+c(i(ua)("common.appName")||"广播系统"),1)]),e("div",Y,[e("div",{class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #0a84ff, #0066cc)"},onClick:s[8]||(s[8]=a=>i(ha).push("/devices"))},[e("div",Z,c(ma.value.totalDevices),1),e("div",$,c(i(ua)("devices.list")),1)]),e("div",{class:"mobile-stat-card",style:{background:"linear-gradient(135deg, #34c759, #248a3d)"},onClick:s[9]||(s[9]=a=>i(ha).push("/devices"))},[e("div",aa,c(ma.value.onlineDevices),1),e("div",sa,c(i(ua)("devices.online")),1)]),e("div",ta,[e("div",ia,c(ya.totalGroups),1),e("div",la,c(i(ua)("groups.list")),1)]),e("div",ea,[e("div",ca,c(ya.totalTasks),1),e("div",na,c(i(ua)("tasks.list")),1)])]),e("div",oa,[e("div",da,c(i(ua)("dashboard.quickActions")),1),e("div",ra,[e("button",{class:"mobile-action-item",onClick:s[10]||(s[10]=a=>i(ha).push("/devices"))},[s[17]||(s[17]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #0a84ff, #0066cc);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><rect x="2" y="3" width="20" height="14" rx="2" data-v-6d90ca45></rect><line x1="8" y1="21" x2="16" y2="21" data-v-6d90ca45></line><line x1="12" y1="17" x2="12" y2="21" data-v-6d90ca45></line></svg></div>',1)),e("span",null,c(i(ua)("menu.devices")),1)]),e("button",{class:"mobile-action-item",onClick:s[11]||(s[11]=a=>i(ha).push("/groups"))},[s[18]||(s[18]=e("div",{class:"mobile-action-icon",style:{background:"linear-gradient(135deg, #5856d6, #3634a3)"}},[e("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"white","stroke-width":"2"},[e("path",{d:"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"})])],-1)),e("span",null,c(i(ua)("menu.groups")),1)]),e("button",{class:"mobile-action-item",onClick:s[12]||(s[12]=a=>i(ha).push("/tasks"))},[s[19]||(s[19]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #ff9500, #cc7700);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><rect x="3" y="4" width="18" height="18" rx="2" data-v-6d90ca45></rect><line x1="16" y1="2" x2="16" y2="6" data-v-6d90ca45></line><line x1="8" y1="2" x2="8" y2="6" data-v-6d90ca45></line><line x1="3" y1="10" x2="21" y2="10" data-v-6d90ca45></line></svg></div>',1)),e("span",null,c(i(ua)("menu.tasks")),1)]),e("button",{class:"mobile-action-item",onClick:s[13]||(s[13]=a=>i(ha).push("/broadcast"))},[s[20]||(s[20]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #ff2d55, #cc0033);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z" data-v-6d90ca45></path><path d="M19 10v2a7 7 0 0 1-14 0v-2" data-v-6d90ca45></path><line x1="12" y1="19" x2="12" y2="23" data-v-6d90ca45></line><line x1="8" y1="23" x2="16" y2="23" data-v-6d90ca45></line></svg></div>',1)),e("span",null,c(i(ua)("menu.broadcast")),1)]),e("button",{class:"mobile-action-item",onClick:s[14]||(s[14]=a=>i(ha).push("/media"))},[s[21]||(s[21]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #34c759, #248a3d);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><path d="M9 18V5l12-2v13" data-v-6d90ca45></path><circle cx="6" cy="18" r="3" data-v-6d90ca45></circle><circle cx="18" cy="16" r="3" data-v-6d90ca45></circle></svg></div>',1)),e("span",null,c(i(ua)("menu.media")),1)]),e("button",{class:"mobile-action-item",onClick:s[15]||(s[15]=a=>i(ha).push("/alarm"))},[s[22]||(s[22]=e("div",{class:"mobile-action-icon",style:{background:"linear-gradient(135deg, #ff3b30, #cc2b22)"}},[e("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"white","stroke-width":"2"},[e("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),e("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})])],-1)),e("span",null,c(i(ua)("menu.alarm")),1)]),e("button",{class:"mobile-action-item",onClick:s[16]||(s[16]=a=>i(ha).push("/account"))},[s[23]||(s[23]=n('<div class="mobile-action-icon" style="background:linear-gradient(135deg, #8e8e93, #636366);" data-v-6d90ca45><svg viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2" data-v-6d90ca45><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-v-6d90ca45></path><circle cx="9" cy="7" r="4" data-v-6d90ca45></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87" data-v-6d90ca45></path><path d="M16 3.13a4 4 0 0 1 0 7.75" data-v-6d90ca45></path></svg></div>',1)),e("span",null,c(i(ua)("menu.account")),1)])])])],64)):(v(),t(l,{key:0},[e("h2",y,c(i(ua)("dashboard.title")),1),e("div",x,[e("div",{class:"stat-card diablo-card clickable",onClick:s[0]||(s[0]=a=>i(ha).push("/devices"))},[e("div",{class:"stat-icon",innerHTML:xa("devices")},null,8,w),e("div",M,[e("div",f,c(i(ua)("devices.list")),1),e("div",C,c(ma.value.totalDevices),1)])]),e("div",{class:"stat-card diablo-card clickable",onClick:s[1]||(s[1]=a=>i(ha).push("/devices"))},[e("div",{class:"stat-icon online",innerHTML:xa("online")},null,8,T),e("div",H,[e("div",L,c(i(ua)("devices.online")),1),e("div",B,c(ma.value.onlineDevices),1)])]),e("div",A,[e("div",{class:"stat-icon",innerHTML:xa("groups")},null,8,_),e("div",D,[e("div",G,c(i(ua)("groups.list")),1),e("div",j,c(ya.totalGroups),1)])]),e("div",z,[e("div",{class:"stat-icon",innerHTML:xa("tasks")},null,8,V),e("div",q,[e("div",N,c(i(ua)("tasks.list")),1),e("div",I,c(ya.totalTasks),1)])])]),e("div",S,[e("h3",F,c(i(ua)("dashboard.quickActions")),1),e("div",J,[e("button",{class:"action-card diablo-card",onClick:s[2]||(s[2]=a=>i(ha).push("/devices"))},[e("span",{class:"action-icon",innerHTML:xa("add")},null,8,P),e("span",null,c(i(ua)("dashboard.addDevice")),1)]),e("button",{class:"action-card diablo-card",onClick:s[3]||(s[3]=a=>i(ha).push("/groups"))},[e("span",{class:"action-icon",innerHTML:xa("groups")},null,8,U),e("span",null,c(i(ua)("dashboard.createGroup")),1)]),e("button",{class:"action-card diablo-card",onClick:s[4]||(s[4]=a=>i(ha).push("/tasks"))},[e("span",{class:"action-icon",innerHTML:xa("tasks")},null,8,E),e("span",null,c(i(ua)("dashboard.scheduleTask")),1)]),e("button",{class:"action-card diablo-card",onClick:s[5]||(s[5]=a=>i(ha).push("/broadcast"))},[e("span",{class:"action-icon",innerHTML:xa("broadcast")},null,8,K),e("span",null,c(i(ua)("dashboard.broadcastNow")),1)]),e("button",{class:"action-card diablo-card",onClick:s[6]||(s[6]=a=>i(ha).push("/alarm"))},[e("span",{class:"action-icon",innerHTML:xa("alarm")},null,8,O),e("span",null,c(i(ua)("menu.alarm")),1)]),e("button",{class:"action-card diablo-card",onClick:s[7]||(s[7]=a=>i(ha).push("/account"))},[e("span",{class:"action-icon",innerHTML:xa("account")},null,8,Q),e("span",null,c(i(ua)("menu.account")),1)])])])],64))]))}}),[["__scopeId","data-v-6d90ca45"]]);export{va as default};
@@ -0,0 +1 @@
1
+ import{f as e,w as l,o as a,n as o,y as s,A as n,u as t,B as i,C as c,H as u,p as r,M as d,F as v,z as p,E as g,N as m,c as b,r as h,X as y,t as f,G as k}from"./vue-vendor-BaBirIg_.js";import{u as C,a as w}from"./index-npdYRXyk.js";import{k as x,g as M,m as S,n as $,s as D,o as F,p as j,q as P,t as V,v as I,w as _}from"./api-C3Fyph-A.js";import{_ as B}from"./_plugin-vue_export-helper-BCo6x5W8.js";const A={class:"group-manage"},L={class:"page-header"},U={class:"page-title"},G={class:"header-actions"},H=["placeholder"],N=["disabled"],T=["disabled"],q=["disabled"],z={key:0,class:"loading-container"},O={key:1,class:"empty-state"},E={key:2,class:"group-list-container"},R={class:"view-mode-bar"},J={class:"view-mode-toggle"},X=["title"],K=["title"],Q={class:"list-header"},W={class:"header-cell cell-id"},Y={class:"header-cell cell-name"},Z={class:"header-cell cell-device-count"},ee={class:"header-cell cell-actions"},le={class:"cell cell-id"},ae={class:"cell cell-name"},oe={class:"cell cell-device-count"},se={class:"cell cell-actions"},ne=["onClick","disabled"],te=["onClick","disabled"],ie=["onClick","disabled"],ce=["onClick","disabled"],ue=["onClick","disabled"],re={key:1,class:"group-card-grid"},de={class:"group-card-header"},ve={class:"group-card-index"},pe={class:"group-card-count"},ge={class:"group-card-name"},me={class:"group-card-actions"},be=["onClick","disabled","title"],he=["onClick","disabled","title"],ye=["onClick","disabled","title"],fe=["onClick","disabled","title"],ke=["onClick","disabled","title"],Ce={class:"dialog-header"},we={class:"modal-body"},xe={class:"form-group"},Me=["placeholder"],Se={class:"search-stats"},$e={key:0},De={key:1},Fe={key:0,class:"loading-container"},je={key:1,class:"device-selector"},Pe={class:"device-list"},Ve={class:"device-list-content"},Ie=["value"],_e={key:0,class:"no-search-result"},Be={class:"selected-devices"},Ae={class:"selected-devices-content"},Le=["onClick"],Ue={key:0,class:"empty-selected"},Ge={class:"modal-footer"},He=["disabled"],Ne={class:"dialog-header"},Te={class:"modal-body"},qe={class:"form-group"},ze={class:"form-group form-group-inline"},Oe=["placeholder"],Ee={class:"modal-footer"},Re=["disabled"],Je={class:"dialog-header"},Xe={class:"modal-body modal-body-large"},Ke={key:0,class:"video-container"},Qe=["src"],We={key:1,class:"no-video"},Ye={class:"modal-footer"},Ze={class:"drawer-title"},el={class:"drawer-body"},ll={key:0,class:"empty-state"},al={key:1,class:"play-items"},ol=["onClick"],sl={class:"drawer-footer"},nl={class:"dialog-header"},tl={class:"modal-body"},il={key:0,class:"empty-state"},cl={key:1,class:"group-select-list"},ul=["onClick"],rl={class:"group-select-info"},dl={class:"group-select-name"},vl={class:"group-select-count"},pl={class:"modal-footer"},gl={class:"dialog-header"},ml={class:"modal-body"},bl={class:"file-search-container"},hl=["placeholder"],yl={key:0,class:"loading-container"},fl={key:1,class:"modal-play-content"},kl={class:"file-selector"},Cl={class:"file-list-content"},wl=["onClick","onDblclick"],xl={class:"file-info"},Ml={class:"file-name"},Sl={class:"file-meta"},$l={key:0},Dl={key:1},Fl={class:"selected-files-panel"},jl={class:"selected-files-content"},Pl=["onDragstart","onDrop"],Vl={class:"selected-file-info"},Il={class:"file-number"},_l={class:"file-name"},Bl={class:"file-actions"},Al=["onClick","disabled","title"],Ll=["onClick","disabled","title"],Ul=["onClick","title"],Gl={key:0,class:"empty-selected-files"},Hl={class:"hint"},Nl={class:"play-settings"},Tl={class:"setting-item"},ql={class:"number-input-group"},zl=["disabled"],Ol=["disabled"],El={class:"setting-hint"},Rl={class:"setting-item"},Jl={class:"interval-input-group"},Xl={class:"number-input-group"},Kl=["disabled"],Ql=["disabled"],Wl={key:0,class:"interval-presets"},Yl=["onClick"],Zl={class:"setting-hint"},ea={class:"setting-item"},la={class:"duration-display"},aa={class:"duration-value"},oa={class:"duration-unit"},sa={class:"duration-bracket"},na={class:"setting-item"},ta={class:"number-input-group"},ia=["disabled"],ca=["max"],ua=["disabled"],ra=["disabled"],da={key:0,class:"interval-presets"},va=["onClick"],pa={class:"setting-hint"},ga={class:"modal-footer"},ma=["disabled"],ba={class:"confirm-dialog-title"},ha={class:"confirm-dialog-body"},ya={class:"confirm-dialog-footer"},fa={key:11,class:"stop-play-loading-overlay"},ka={class:"stop-play-loading-content"},Ca={class:"loading-text"},wa=B(e({__name:"index",setup(e){const{t:B}=C(),wa=w(),xa=b(()=>{if(!Va.value.trim())return Sa.value;const e=Va.value.toLowerCase().trim();return Sa.value.filter(l=>l.label.toLowerCase().includes(e)||String(l.id).includes(e))}),Ma=h([]),Sa=h([]),$a=h([]),Da=h([]),Fa=h(!1),ja=h("card"),Pa=h(!1),Va=h(""),Ia=h(!1),_a=h([]),Ba=h([]),Aa=h(""),La=h(-1),Ua=h(!1),Ga=h({playmode:1,jiange:1}),Ha=[1,5,10,30,60,120,300,600,1800,3600,7200],Na=h(0),Ta=h(!1),qa=h(!1),za=b(()=>{if(!Aa.value.trim())return _a.value;const e=Aa.value.toLowerCase().trim();return _a.value.filter(l=>{var a;return(null==(a=l.filename)?void 0:a.toLowerCase().includes(e))||String(l.id).includes(e)})}),Oa=b(()=>{if(0===Ba.value.length)return 0;let e=0,l=!1;for(const a of Ba.value){const o=_a.value.find(e=>e.id===a);o&&o.len&&(e+=o.len,l=!0)}if(!l)return 0;return(e+Ba.value.length*Ga.value.jiange)*Ga.value.playmode}),Ea=b(()=>{const e=Oa.value;if(e<=0)return[];return[60,120,300,600,1200,1800,2400,3e3,3600,7200,10800,14400,18e3].filter(l=>l<=e)}),Ra=h(""),Ja=h(""),Xa=h(null),Ka=h(!1),Qa=h(!1),Wa=h(!1),Ya=h(!1),Za=h(!1),eo=h(!1),lo=h(!1),ao=h(""),oo=h(""),so=h(null),no=h({show:!1,text:"",type:"success"});function to(e,l="success",a=3e3){no.value={show:!0,text:e,type:l},setTimeout(()=>{no.value.show=!1},a)}function io(){so.value&&so.value(),lo.value=!1}function co(){lo.value=!1}async function uo(){Fa.value=!0;try{const e=await x();console.log("分组详情响应:",e),e.res&&Array.isArray(e.list)?(Ma.value=e.list,console.log(`成功获取 ${e.list.length} 个分组`),e.list.forEach((e,l)=>{var a;console.log(`分组 ${l+1}:`,{gid:e.gid,name:e.name,deviceCount:(null==(a=e.dlist)?void 0:a.length)||0})}),to(B("groups.loadSuccess",{count:e.list.length}),"success")):(Ma.value=[],to(B("groups.loadFailed"),"error"))}catch(e){console.error("获取分组列表失败:",e),to(B("groups.loadFailed"),"error")}finally{Fa.value=!1}}async function ro(){try{const e=await M();console.log("设备列表响应:",e),e.res&&Array.isArray(e.results)&&(Sa.value=e.results.map(e=>{const l=e.id||0;return{id:l,key:String(l),label:e.devname||e.name||B("groups.untitled"),seed:e.device_seed||""}}),console.log("可用设备列表:",Sa.value))}catch(e){console.error("获取设备列表失败:",e)}}async function vo(){const e=Ra.value.trim();if(e){Fa.value=!0;try{const l=await S({gname:e});console.log("添加分组响应:",l),l.res?(to(B("groups.addSuccess"),"success"),Ra.value="",await uo()):to(B("groups.addFailed"),"error")}catch(l){console.error("添加分组失败:",l),to(B("groups.addFailed"),"error")}finally{Fa.value=!1}}else to(B("groups.nameRequired"),"error")}async function po(e){Xa.value=e,$a.value=[],Va.value="",Pa.value=!0,Ka.value=!0;try{const l=e.gid||e.pid;if(!l)return void to(B("groups.invalidGroupId"),"error");const a=await F({gid:l});console.log("分组设备响应:",a),a.res&&($a.value=a.dev_info_S.map(e=>{const l=a.dev_info.find(l=>l.key===e);return(null==l?void 0:l.id)||parseInt(e)||0}).filter(e=>e>0),console.log("已选中的设备ID:",$a.value))}catch(l){console.error("获取分组设备失败:",l),to(B("groups.loadDevicesFailed"),"error")}finally{Pa.value=!1}}async function go(){if(!Xa.value)return;if(0===$a.value.length)return void to(B("groups.selectAtLeastOneDevice"),"error");const e=Xa.value.gid||Xa.value.pid;if(e){Fa.value=!0;try{const l=$a.value.map(e=>String(e)).join("|");console.log("保存分组设备参数:",{gid:e,devids:l});const a=await $({gid:e,devids:l});console.log("编辑分组设备响应:",a),a.res?(to(B("groups.saveSuccess"),"success"),Ka.value=!1,await uo()):to(B("groups.saveFailed"),"error")}catch(l){console.error("编辑分组设备失败:",l),to(B("groups.saveFailed"),"error")}finally{Fa.value=!1}}else to(B("groups.invalidGroupId"),"error")}function mo(e){Xa.value=e,Ja.value="none"!==e.msurl&&e.msurl?e.msurl:B("groups.noVideoUrlSet"),Qa.value=!0}async function bo(){if(!Xa.value)return;const e=Xa.value.gid||Xa.value.pid;if(e){Fa.value=!0;try{const l=await D({gid:e,msurl:Ja.value});console.log("保存视频响应:",l),l.res?(to(B("groups.saveSuccess"),"success"),Qa.value=!1,await uo()):to(B("groups.saveFailed"),"error")}catch(l){console.error("保存视频失败:",l),to(B("groups.saveFailed"),"error")}finally{Fa.value=!1}}else to(B("groups.invalidGroupId"),"error")}function ho(e){Xa.value=e,Ja.value="none"!==e.msurl&&e.msurl?e.msurl:"",Wa.value=!0}function yo(){0!==Ma.value.length?Za.value=!0:to(B("groups.noGroups"),"error")}function fo(){Za.value=!1}async function ko(e){Xa.value=e,Ba.value=[],Aa.value="",Ga.value={playmode:1,jiange:1},Na.value=0,Ta.value=!0,Za.value=!1,Ia.value=!0,Ua.value=!1,qa.value=!1;try{const e=await V();e.res&&Array.isArray(e.filelist)?_a.value=e.filelist:(_a.value=[],to(B("groups.loadFilesFailed"),"error"))}catch(l){console.error("获取文件列表失败:",l),to(B("groups.loadFilesFailed"),"error")}finally{Ta.value=!1}}async function Co(e){await ko(e)}async function wo(e){const l=e.gid||e.pid;if(!l)return void to(B("groups.invalidGroupId"),"error");if(confirm(B("groups.deleteConfirm"))){Fa.value=!0;try{const e=await I({gid:l});console.log("删除分组响应:",e),e.res?(to(B("groups.deleteSuccess"),"success"),await uo()):to(B("groups.deleteFailed"),"error")}catch(a){console.error("删除分组失败:",a),to(B("groups.deleteFailed"),"error")}finally{Fa.value=!1}}}function xo(e){const l=_a.value.find(l=>l.id===e);return(null==l?void 0:l.filename)||B("groups.unknownFile")}function Mo(e){const{t:l}=C(),a=Math.floor(e/3600),o=Math.floor(e%3600/60),s=e%60;return a>0?`${a}:${String(o).padStart(2,"0")}:${String(s).padStart(2,"0")}`:o>0?`${o}:${String(s).padStart(2,"0")}`:`${s}${l("common.seconds")}`}function So(e){const l=Ga.value.playmode+e;l>=1&&l<=99&&(Ga.value.playmode=l)}function $o(e){const l=Ga.value.jiange+e;l>=0&&l<=10800&&(Ga.value.jiange=l)}function Do(e){const l=Na.value+e,a=Oa.value;(a>0&&l>=1&&l<=a||0===a&&l>=1)&&(Na.value=l)}function Fo(e){const{t:l}=C();if(0===e)return`0${l("common.seconds")}`;const a=Math.floor(e/3600),o=Math.floor(e%3600/60),s=e%60,n=[];return a>0&&n.push(`${a}${l("common.hours")}`),o>0&&n.push(`${o}${l("common.minutes")}`),(s>0||0===n.length)&&n.push(`${s}${l("common.seconds")}`),n.join("")}async function jo(){if(!Xa.value||0===Ba.value.length)return void to(B("groups.selectAtLeastOneFile"),"error");const e=Xa.value.gid||Xa.value.pid;if(!e)return void to(B("groups.invalidGroupId"),"error");const l=await F({gid:e});if(!l.res||!l.dev_info_S||0===l.dev_info_S.length)return void to(B("groups.groupHasNoDevices"),"error");const a=l.dev_info_S.map(e=>{const a=l.dev_info.find(l=>l.key===e);return(null==a?void 0:a.id)||parseInt(e)}).filter(e=>e&&!isNaN(e)).join("|"),o=Ba.value.map(e=>String(e)).join("|");Fa.value=!0;try{const e=Na.value>0?Na.value:Oa.value;(await j({playmode:Ga.value.playmode,len:e,jiange:Ga.value.jiange,fileids:o,snids:a})).res?(to(B("groups.playStarted"),"success"),Ia.value=!1,await Po()):to(B("groups.playFailed"),"error")}catch(s){console.error("启动播放失败:",s),to(B("groups.playFailed"),"error")}finally{Fa.value=!1}}async function Po(){try{const e=await P();console.log("📋 播放列表响应:",e),console.log("播放列表数据:",e.tps),console.log("res.res:",e.res),console.log("Array.isArray(res.tps):",Array.isArray(e.tps)),e.res&&Array.isArray(e.tps)?(Da.value=[],await y(),Da.value=[...e.tps],console.log("✅ 播放列表已更新,数量:",Da.value.length),console.log("📋 新播放列表内容:",JSON.stringify(Da.value))):(Da.value=[],console.log("❌ 播放列表为空或格式错误"),console.log("❌ playList.value 已设置为空数组"))}catch(e){console.error("获取播放列表失败:",e),Da.value=[]}}async function Vo(){await Po(),Ya.value=!0}async function Io(e){var l;const a=e.tpid||e.tmpid||e.id;var o,s,n;(console.log("🎵 停止播放调试信息:"),console.log("播放项完整数据:",e),console.log("使用的播放ID(tpid):",a),console.log("使用的用户ID:",null==(l=wa.userInfo)?void 0:l.id),a)?(o=B("common.confirm"),s=B("groups.stopPlayConfirm"),n=async()=>{await async function(e){var l;try{const a=wa.token||"",o=null==(l=wa.userInfo)?void 0:l.id;eo.value=!0;const s=Math.floor(6*Math.random())+5;console.log(`🕐 停止播放模拟延迟: ${s}秒`),await new Promise(e=>setTimeout(e,1e3*s));const n=await _({id:o,token:a,tpid:e});console.log("🎵 停止播放响应:",n),console.log("🎵 响应结果res.res:",n.res),console.log("⏳ 等待服务器处理停止操作..."),await new Promise(e=>setTimeout(e,3e3)),console.log("🔄 开始获取播放列表..."),await Po(),console.log("📊 刷新后播放列表长度:",Da.value.length),eo.value=!1,n.res?0===Da.value.length?(console.log("🎯 播放列表为空,抽屉保持打开"),to(B("groups.stopPlaySuccess"),"success")):(console.log("📋 播放列表还有",Da.value.length,"个播放项"),to(B("groups.stopPlaySuccess"),"success")):to(B("groups.stopPlayFailed"),"error")}catch(a){console.error("停止播放失败:",a),eo.value=!1,to(B("groups.stopPlayFailed"),"error")}}(a)},ao.value=o,oo.value=s,so.value=n,lo.value=!0):to(B("groups.invalidPlayId"),"error")}function _o(e){const l=Sa.value.find(l=>l.id===e);return(null==l?void 0:l.label)||B("groups.unknownDevice")}function Bo(){Ka.value=!1,Qa.value=!1,Wa.value=!1,Ia.value=!1,Za.value=!1,Xa.value=null,$a.value=[],Ja.value="",Va.value="",Ba.value=[],Aa.value="",La.value=-1,Na.value=0,Ua.value=!1,qa.value=!1}function Ao(){Ya.value=!1}return l(Oa,e=>{e>0&&Na.value>e&&(Na.value=e)}),a(async()=>{await Promise.all([uo(),ro(),Po()])}),(e,l)=>{var a,b,h,y,w,x;return f(),o("div",A,[s("div",L,[s("h2",U,n(t(B)("groups.manage")),1),s("div",G,[i(s("input",{"onUpdate:modelValue":l[0]||(l[0]=e=>Ra.value=e),placeholder:t(B)("groups.inputName"),class:"input-name form-input"},null,8,H),[[c,Ra.value]]),s("button",{onClick:vo,class:"add-btn diablo-button",disabled:Fa.value},[l[26]||(l[26]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2"},[s("path",{d:"M12 5v14M5 12h14"})],-1)),u(" "+n(t(B)("groups.add")),1)],8,N),s("button",{onClick:yo,class:"group-play-btn diablo-button",disabled:Fa.value},[l[27]||(l[27]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[s("path",{d:"M8 5v14l11-7z"})],-1)),u(" "+n(t(B)("groups.groupPlay")),1)],8,T),s("button",{onClick:Vo,class:"play-list-btn diablo-button",disabled:Fa.value},[l[28]||(l[28]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"16",height:"16"},[s("path",{d:"M4 6h16M4 12h16M4 18h16"})],-1)),u(" "+n(t(B)("groups.playList")),1)],8,q)])]),Fa.value?(f(),o("div",z,[l[29]||(l[29]=s("div",{class:"loading-spinner"},null,-1)),s("p",null,n(t(B)("common.loading")),1)])):0===Ma.value.length?(f(),o("div",O,[s("p",null,n(t(B)("groups.noGroups")),1)])):(f(),o("div",E,[s("div",R,[s("div",J,[s("button",{class:r(["view-mode-btn",{active:"list"===ja.value}]),onClick:l[1]||(l[1]=e=>ja.value="list"),title:t(B)("devices.listView")},[...l[30]||(l[30]=[d('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" data-v-ca949926><line x1="8" y1="6" x2="21" y2="6" data-v-ca949926></line><line x1="8" y1="12" x2="21" y2="12" data-v-ca949926></line><line x1="8" y1="18" x2="21" y2="18" data-v-ca949926></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-ca949926></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-ca949926></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-ca949926></line></svg>',1)])],10,X),s("button",{class:r(["view-mode-btn",{active:"card"===ja.value}]),onClick:l[2]||(l[2]=e=>ja.value="card"),title:t(B)("devices.cardView")},[...l[31]||(l[31]=[d('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="18" height="18" data-v-ca949926><rect x="3" y="3" width="7" height="7" data-v-ca949926></rect><rect x="14" y="3" width="7" height="7" data-v-ca949926></rect><rect x="3" y="14" width="7" height="7" data-v-ca949926></rect><rect x="14" y="14" width="7" height="7" data-v-ca949926></rect></svg>',1)])],10,K)])]),"list"===ja.value?(f(),o(v,{key:0},[s("div",Q,[s("div",W,n(t(B)("groups.id")),1),s("div",Y,n(t(B)("groups.name")),1),s("div",Z,n(t(B)("groups.deviceCount")),1),s("div",ee,n(t(B)("common.actions")),1)]),(f(!0),o(v,null,p(Ma.value,(e,l)=>{var a,i;return f(),o("div",{key:e.gid||e.pid,class:"group-item"},[s("div",le,n(l+1),1),s("div",ae,n(e.name||e.pname||t(B)("groups.untitled")),1),s("div",oe,n((null==(a=e.dlist)?void 0:a.length)||(null==(i=e.idlist)?void 0:i.length)||0),1),s("div",se,[s("button",{onClick:l=>po(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.editDevices")),9,ne),s("button",{onClick:l=>mo(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.editVideo")),9,te),s("button",{onClick:l=>ho(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.previewVideo")),9,ie),s("button",{onClick:l=>Co(e),class:"action-btn",disabled:Fa.value},n(t(B)("groups.groupPlay")),9,ce),s("button",{onClick:l=>wo(e),class:"action-btn btn-delete",disabled:Fa.value},n(t(B)("common.delete")),9,ue)])])}),128))],64)):(f(),o("div",re,[(f(!0),o(v,null,p(Ma.value,(e,a)=>{var i,c;return f(),o("div",{key:e.gid||e.pid,class:"group-card"},[s("div",de,[s("span",ve,"#"+n(a+1),1),s("span",pe,[l[32]||(l[32]=s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2",ry:"2"}),s("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),s("line",{x1:"12",y1:"17",x2:"12",y2:"21"})],-1)),u(" "+n((null==(i=e.dlist)?void 0:i.length)||(null==(c=e.idlist)?void 0:c.length)||0),1)])]),s("div",ge,n(e.name||e.pname||t(B)("groups.untitled")),1),s("div",me,[s("button",{onClick:l=>po(e),class:"card-action-btn",disabled:Fa.value,title:t(B)("groups.editDevices")},[...l[33]||(l[33]=[d('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14" data-v-ca949926><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2" data-v-ca949926></path><circle cx="9" cy="7" r="4" data-v-ca949926></circle><path d="M23 21v-2a4 4 0 0 0-3-3.87" data-v-ca949926></path><path d="M16 3.13a4 4 0 0 1 0 7.75" data-v-ca949926></path></svg>',1)])],8,be),s("button",{onClick:l=>mo(e),class:"card-action-btn",disabled:Fa.value,title:t(B)("groups.editVideo")},[...l[34]||(l[34]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("polygon",{points:"23 7 16 12 23 17 23 7"}),s("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})],-1)])],8,he),s("button",{onClick:l=>ho(e),class:"card-action-btn",disabled:Fa.value,title:t(B)("groups.previewVideo")},[...l[35]||(l[35]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),s("circle",{cx:"12",cy:"12",r:"3"})],-1)])],8,ye),s("button",{onClick:l=>Co(e),class:"card-action-btn card-action-play",disabled:Fa.value,title:t(B)("groups.groupPlay")},[...l[36]||(l[36]=[s("svg",{viewBox:"0 0 24 24",fill:"currentColor",width:"14",height:"14"},[s("polygon",{points:"5 3 19 12 5 21 5 3"})],-1)])],8,fe),s("button",{onClick:l=>wo(e),class:"card-action-btn card-action-delete",disabled:Fa.value,title:t(B)("common.delete")},[...l[37]||(l[37]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"14",height:"14"},[s("polyline",{points:"3 6 5 6 21 6"}),s("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})],-1)])],8,ke)])])}),128))]))])),Ka.value?(f(),o("div",{key:3,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content",onClick:l[5]||(l[5]=m(()=>{},["stop"]))},[s("div",Ce,[s("h3",null,n(t(B)("groups.editDevices")),1),s("button",{class:"close-btn",onClick:Bo},[...l[38]||(l[38]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",we,[s("div",xe,[s("label",null,n(t(B)("groups.searchDevicePlaceholder")),1),i(s("input",{"onUpdate:modelValue":l[3]||(l[3]=e=>Va.value=e),placeholder:t(B)("groups.searchDevicePlaceholder"),class:"form-input"},null,8,Me),[[c,Va.value]]),s("div",Se,[Va.value?(f(),o("span",$e,n(t(B)("groups.searchResult",{filtered:xa.value.length,total:Sa.value.length})),1)):(f(),o("span",De,n(t(B)("groups.totalDevices",{count:Sa.value.length})),1))])]),Pa.value?(f(),o("div",Fe,[l[39]||(l[39]=s("div",{class:"loading-spinner"},null,-1)),s("p",null,n(t(B)("common.loading")),1)])):(f(),o("div",je,[s("div",Pe,[s("h4",null,n(t(B)("groups.allDevices")),1),s("div",Ve,[(f(!0),o(v,null,p(xa.value,e=>(f(),o("div",{key:e.id,class:"device-item"},[s("label",null,[i(s("input",{type:"checkbox",value:e.id,"onUpdate:modelValue":l[4]||(l[4]=e=>$a.value=e)},null,8,Ie),[[k,$a.value]]),u(" "+n(e.label),1)])]))),128)),0===xa.value.length&&Sa.value.length>0?(f(),o("div",_e,[s("p",null,n(t(B)("groups.noSearchResult")),1)])):g("",!0)])]),s("div",Be,[s("h4",null,n(t(B)("groups.selectedDevices"))+" ("+n($a.value.length)+")",1),s("div",Ae,[(f(!0),o(v,null,p($a.value,e=>(f(),o("div",{key:e,class:"device-item selected"},[u(n(_o(e))+" ",1),s("button",{onClick:l=>function(e){const l=$a.value.indexOf(e);l>-1&&$a.value.splice(l,1)}(e),class:"remove-btn"},"×",8,Le)]))),128)),0===$a.value.length?(f(),o("div",Ue,[s("p",null,n(t(B)("groups.noSelectedDevices")),1)])):g("",!0)])])]))]),s("div",Ge,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1),s("button",{onClick:go,class:"btn btn-primary diablo-button",disabled:Fa.value||0===$a.value.length},n(t(B)("common.save")),9,He)])])])):g("",!0),Qa.value?(f(),o("div",{key:4,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content",onClick:l[7]||(l[7]=m(()=>{},["stop"]))},[s("div",Ne,[s("h3",null,n(t(B)("groups.editVideo")),1),s("button",{class:"close-btn",onClick:Bo},[...l[40]||(l[40]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",Te,[s("div",qe,[s("label",null,n(t(B)("groups.groupName"))+": "+n((null==(a=Xa.value)?void 0:a.name)||(null==(b=Xa.value)?void 0:b.pname)),1)]),s("div",ze,[s("label",null,n(t(B)("groups.videoUrl"))+":",1),i(s("input",{"onUpdate:modelValue":l[6]||(l[6]=e=>Ja.value=e),placeholder:t(B)("groups.inputVideoUrl"),class:"form-input video-url-input"},null,8,Oe),[[c,Ja.value]])])]),s("div",Ee,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1),s("button",{onClick:bo,class:"btn btn-primary diablo-button",disabled:Fa.value},n(t(B)("common.save")),9,Re)])])])):g("",!0),Wa.value?(f(),o("div",{key:5,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content modal-large-content",onClick:l[8]||(l[8]=m(()=>{},["stop"]))},[s("div",Je,[s("h3",null,n((null==(h=Xa.value)?void 0:h.name)||(null==(y=Xa.value)?void 0:y.pname)),1),s("button",{class:"close-btn",onClick:Bo},[...l[41]||(l[41]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",Xe,[Ja.value&&"none"!==Ja.value?(f(),o("div",Ke,[s("video",{src:Ja.value,controls:"",width:"760"},null,8,Qe)])):(f(),o("div",We,[s("p",null,n(t(B)("groups.noVideoUrl")),1)]))]),s("div",Ye,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.close")),1)])])])):g("",!0),Ya.value?(f(),o("div",{key:6,class:"drawer-overlay",onClick:Ao},[s("div",{class:"drawer-content",onClick:l[9]||(l[9]=m(()=>{},["stop"]))},[s("h3",Ze,n(t(B)("groups.playList")),1),s("div",el,[0===Da.value.length?(f(),o("div",ll,[s("p",null,n(t(B)("groups.noPlayingItems")),1)])):(f(),o("div",al,[(f(!0),o(v,null,p(Da.value,(e,l)=>(f(),o("div",{key:e.tmpid||e.id||l,class:"play-item"},[s("p",null,n(t(B)("groups.playSequence"))+": "+n(e.Name),1),s("p",null,n(t(B)("groups.fileInterval"))+": "+n(e.jiange),1),s("p",null,n(t(B)("groups.playCount"))+": "+n(e.playmode),1),s("button",{onClick:l=>Io(e),class:"btn-stop"},n(t(B)("common.stop")),9,ol)]))),128))]))]),s("div",sl,[s("button",{onClick:Ao,class:"btn-close"},n(t(B)("common.close")),1)])])])):g("",!0),Za.value?(f(),o("div",{key:7,class:"modal-overlay",onClick:fo},[s("div",{class:"modal-content",onClick:l[10]||(l[10]=m(()=>{},["stop"]))},[s("div",nl,[s("h3",null,n(t(B)("groups.selectGroupForPlay")),1),s("button",{class:"close-btn",onClick:fo},[...l[42]||(l[42]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",tl,[0===Ma.value.length?(f(),o("div",il,[s("p",null,n(t(B)("groups.noGroups")),1)])):(f(),o("div",cl,[(f(!0),o(v,null,p(Ma.value,e=>{var a,i;return f(),o("div",{key:e.gid||e.pid,class:"group-select-item",onClick:l=>ko(e)},[s("div",rl,[s("span",dl,n(e.name||e.pname||t(B)("groups.untitled")),1),s("span",vl,n((null==(a=e.dlist)?void 0:a.length)||(null==(i=e.idlist)?void 0:i.length)||0)+" "+n(t(B)("groups.devicesCount")),1)]),l[43]||(l[43]=s("div",{class:"group-select-arrow"},"→",-1))],8,ul)}),128))]))]),s("div",pl,[s("button",{onClick:fo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1)])])])):g("",!0),Ia.value?(f(),o("div",{key:8,class:"modal-overlay",onClick:Bo},[s("div",{class:"modal-content modal-large-content",onClick:l[24]||(l[24]=m(()=>{},["stop"]))},[s("div",gl,[s("h3",null,n(t(B)("groups.groupPlay"))+" - "+n((null==(w=Xa.value)?void 0:w.name)||(null==(x=Xa.value)?void 0:x.pname)),1),s("button",{class:"close-btn",onClick:Bo},[...l[44]||(l[44]=[s("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2",width:"20",height:"20"},[s("path",{d:"M18 6L6 18M6 6l12 12"})],-1)])])]),s("div",ml,[s("div",bl,[i(s("input",{"onUpdate:modelValue":l[11]||(l[11]=e=>Aa.value=e),placeholder:t(B)("groups.searchFilePlaceholder"),class:"file-search-input form-input",clearable:""},null,8,hl),[[c,Aa.value]])]),Ta.value?(f(),o("div",yl,[l[45]||(l[45]=s("div",{class:"loading-spinner"},null,-1)),s("p",null,n(t(B)("common.loading")),1)])):(f(),o("div",fl,[s("div",kl,[s("h4",null,n(t(B)("groups.availableFiles"))+" ("+n(za.value.length)+")",1),s("div",Cl,[(f(!0),o(v,null,p(za.value,e=>{return f(),o("div",{key:e.id,class:r(["file-item",{selected:(l=e.id,Ba.value.includes(l))}]),onClick:l=>function(e){e.id&&Ba.value.push(e.id)}(e),onDblclick:l=>function(e){e.id&&Ba.value.push(e.id)}(e)},[s("div",xl,[s("div",Ml,n(e.filename),1),s("div",Sl,[e.sizeStr?(f(),o("span",$l,n(e.sizeStr),1)):g("",!0),e.len?(f(),o("span",Dl,n(Mo(e.len)),1)):g("",!0)])])],42,wl);var l}),128))])]),s("div",Fl,[s("h4",null,n(t(B)("groups.selectedFiles"))+" ("+n(Ba.value.length)+")",1),s("div",jl,[(f(!0),o(v,null,p(Ba.value,(e,a)=>(f(),o("div",{key:`${e}-${a}`,class:"selected-file-item",draggable:"true",onDragstart:e=>function(e,l){La.value=e,l.dataTransfer&&(l.dataTransfer.effectAllowed="move",l.dataTransfer.setData("text/plain",String(e)))}(a,e),onDragover:l[12]||(l[12]=e=>{return(l=e).preventDefault(),void(l.dataTransfer&&(l.dataTransfer.dropEffect="move"));var l}),onDrop:e=>function(e,l){if(l.preventDefault(),-1===La.value||La.value===e)return;const a=Ba.value[La.value];Ba.value.splice(La.value,1),Ba.value.splice(e,0,a),La.value=-1}(a,e)},[s("div",Vl,[s("div",Il,n(a+1)+".",1),s("div",_l,n(xo(e)),1)]),s("div",Bl,[s("button",{onClick:e=>function(e){if(e>0){const l=Ba.value[e];Ba.value[e]=Ba.value[e-1],Ba.value[e-1]=l}}(a),class:"file-action-btn",disabled:0===a,title:t(B)("common.moveUp")}," ↑ ",8,Al),s("button",{onClick:e=>function(e){if(e<Ba.value.length-1){const l=Ba.value[e];Ba.value[e]=Ba.value[e+1],Ba.value[e+1]=l}}(a),class:"file-action-btn",disabled:a===Ba.value.length-1,title:t(B)("common.moveDown")}," ↓ ",8,Ll),s("button",{onClick:e=>function(e){Ba.value.splice(e,1)}(a),class:"file-action-btn btn-remove",title:t(B)("common.delete")}," × ",8,Ul)])],40,Pl))),128)),0===Ba.value.length?(f(),o("div",Gl,[s("p",null,n(t(B)("groups.noSelectedFiles")),1),s("p",Hl,n(t(B)("groups.doubleClickHint")),1)])):g("",!0)])])])),s("div",Nl,[s("div",Tl,[s("label",null,n(t(B)("groups.playMode"))+":",1),s("div",ql,[s("button",{onClick:l[13]||(l[13]=e=>So(-1)),class:"number-btn btn-minus",disabled:Ga.value.playmode<=1},"-",8,zl),i(s("input",{"onUpdate:modelValue":l[14]||(l[14]=e=>Ga.value.playmode=e),type:"number",min:"1",max:"99",class:"setting-input setting-number form-input"},null,512),[[c,Ga.value.playmode,void 0,{number:!0}]]),s("button",{onClick:l[15]||(l[15]=e=>So(1)),class:"number-btn btn-plus",disabled:Ga.value.playmode>=99},"+",8,Ol)]),s("div",El,n(t(B)("groups.playModeHint")),1)]),s("div",Rl,[s("label",null,n(t(B)("groups.fileInterval"))+" ("+n(t(B)("common.seconds"))+"):",1),s("div",Jl,[s("div",Xl,[s("button",{onClick:l[16]||(l[16]=e=>$o(-1)),class:"number-btn btn-minus",disabled:Ga.value.jiange<=0},"-",8,Kl),i(s("input",{"onUpdate:modelValue":l[17]||(l[17]=e=>Ga.value.jiange=e),type:"number",min:"0",max:"10800",class:"setting-input setting-number form-input"},null,512),[[c,Ga.value.jiange,void 0,{number:!0}]]),s("button",{onClick:l[18]||(l[18]=e=>$o(1)),class:"number-btn btn-plus",disabled:Ga.value.jiange>=10800},"+",8,Ql),s("button",{onClick:l[19]||(l[19]=e=>Ua.value=!Ua.value),class:"toggle-quick-select-btn"},n(t(B)("common.quick")),1)]),Ua.value?(f(),o("div",Wl,[(f(),o(v,null,p(Ha,e=>s("button",{key:e,onClick:l=>{return a=e,Ga.value.jiange=a,void(Ua.value=!1);var a},class:r(["interval-preset-btn",{active:Ga.value.jiange===e}])},n(function(e){const{t:l}=C();return 0===e?`0${l("common.seconds")}`:e<60?`${e}${l("common.seconds")}`:e<3600?`${Math.floor(e/60)}${l("common.minutes")}`:e<7200?`1${l("common.hours")}`:e<10800?`2${l("common.hours")}`:`3${l("common.hours")}`}(e)),11,Yl)),64))])):g("",!0)]),s("div",Zl,n(t(B)("groups.intervalMaxHint")),1)]),s("div",ea,[s("label",null,n(t(B)("groups.estimatedDuration"))+":",1),s("div",la,[s("span",aa,n(Oa.value),1),s("span",oa,n(t(B)("common.seconds")),1),s("span",sa,"(≈ "+n(Fo(Oa.value))+")",1)])]),s("div",na,[s("label",null,n(t(B)("groups.forceStopDuration"))+":",1),s("div",null,[s("div",ta,[s("button",{onClick:l[20]||(l[20]=e=>Do(-1)),class:"number-btn btn-minus",disabled:Na.value<=1},"-",8,ia),i(s("input",{"onUpdate:modelValue":l[21]||(l[21]=e=>Na.value=e),type:"number",min:"1",max:Oa.value,class:"setting-input setting-number form-input"},null,8,ca),[[c,Na.value,void 0,{number:!0}]]),s("button",{onClick:l[22]||(l[22]=e=>Do(1)),class:"number-btn btn-plus",disabled:Na.value>=Oa.value},"+",8,ua),s("button",{onClick:l[23]||(l[23]=e=>qa.value=!qa.value),class:"toggle-quick-select-btn",disabled:Oa.value<=0},n(t(B)("common.quick")),9,ra)]),qa.value&&Ea.value.length>0?(f(),o("div",da,[(f(!0),o(v,null,p(Ea.value,e=>(f(),o("button",{key:e,onClick:l=>{return a=e,Na.value=a,void(qa.value=!1);var a},class:r(["interval-preset-btn",{active:Na.value===e}])},n(function(e){const{t:l}=C();return e<60?`${e}${l("common.seconds")}`:e<3600?`${Math.floor(e/60)}${l("common.minutes")}`:`${Math.floor(e/3600)}${l("common.hours")}`}(e)),11,va))),128))])):g("",!0),s("div",pa,n(t(B)("groups.forceStopHint")),1)])])])]),s("div",ga,[s("button",{onClick:Bo,class:"btn btn-cancel diablo-button-secondary"},n(t(B)("common.cancel")),1),s("button",{onClick:jo,class:"btn btn-primary diablo-button",disabled:Fa.value||0===Ba.value.length},n(t(B)("groups.startPlay")),9,ma)])])])):g("",!0),no.value.show?(f(),o("div",{key:9,class:r(["message-toast",no.value.type])},n(no.value.text),3)):g("",!0),lo.value?(f(),o("div",{key:10,class:"confirm-dialog-overlay",onClick:co},[s("div",{class:"confirm-dialog-content",onClick:l[25]||(l[25]=m(()=>{},["stop"]))},[s("h3",ba,n(ao.value),1),s("div",ha,[s("p",null,n(oo.value),1)]),s("div",ya,[s("button",{onClick:co,class:"btn-cancel"},n(t(B)("common.cancel")),1),s("button",{onClick:io,class:"btn-confirm"},n(t(B)("common.confirm")),1)])])])):g("",!0),eo.value?(f(),o("div",fa,[s("div",ka,[l[46]||(l[46]=s("div",{class:"loading-spinner"},null,-1)),l[47]||(l[47]=s("div",{class:"loading-spinner-delayed"},null,-1)),s("p",Ca,n(t(B)("groups.stopPlayInProgress")),1)])])):g("",!0)])}}}),[["__scopeId","data-v-ca949926"]]);export{wa as default};