/* ioTab V3.0.37: desktop-only native glass shortcut dock. */
#iotab-quick-dock,.dq-context,.dq-dialog,.dq-toast,.dq-toggle{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;box-sizing:border-box;color:#253548}
#iotab-quick-dock{
  --dq-size:clamp(32px,calc((100vw - 230px)/15),56px);
  position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:90;
  display:flex;align-items:center;gap:8px;padding:10px 12px;
  max-width:calc(100vw - 30px);border-radius:22px;
  background:linear-gradient(135deg,rgba(255,255,255,.69),rgba(255,255,255,.38));
  border:1px solid rgba(255,255,255,.73);box-shadow:0 10px 38px rgba(10,27,46,.22),inset 0 1px 0 rgba(255,255,255,.8);
  -webkit-backdrop-filter:blur(22px) saturate(165%);backdrop-filter:blur(22px) saturate(165%);
}
#iotab-quick-dock *{box-sizing:border-box}
#iotab-quick-dock .dq-quick{display:grid;grid-template-columns:repeat(10,var(--dq-size));gap:6px;align-items:center}
#iotab-quick-dock .dq-recent{display:grid;grid-template-columns:repeat(5,var(--dq-size));gap:6px;align-items:center}
#iotab-quick-dock .dq-divider{height:calc(var(--dq-size) - 4px);width:1px;flex-shrink:0;background:rgba(34,53,77,.26);margin:0 3px}
#iotab-quick-dock .dq-section-label{writing-mode:vertical-rl;font-size:11px;line-height:14px;letter-spacing:1px;flex-shrink:0;color:#506276}
#iotab-quick-dock .dq-icon{
  display:flex;align-items:center;justify-content:center;position:relative;
  width:var(--dq-size);height:var(--dq-size);padding:0;border:1px solid rgba(255,255,255,.76);
  border-radius:calc(var(--dq-size)*.25);background:rgba(255,255,255,.54);cursor:pointer;overflow:hidden;
  box-shadow:0 2px 8px rgba(20,35,55,.10),inset 0 1px 0 rgba(255,255,255,.75);
  transition:transform .16s ease,background .16s ease,box-shadow .16s ease;
}
#iotab-quick-dock .dq-icon:not(:disabled):hover{transform:translateY(-4px);background:rgba(255,255,255,.88);box-shadow:0 7px 16px rgba(15,35,60,.19)}
#iotab-quick-dock .dq-icon:not(:disabled):active{transform:translateY(-1px) scale(.96)}
#iotab-quick-dock .dq-icon:focus-visible,.dq-context button:focus-visible,.dq-toggle:focus-visible{outline:3px solid #4095f5;outline-offset:3px}
#iotab-quick-dock .dq-icon img{display:block;width:100%;height:100%;object-fit:contain;padding:5px;border-radius:inherit}
#iotab-quick-dock .dq-globe{display:flex;width:64%;height:64%;align-items:center;justify-content:center;color:#738ca3}
#iotab-quick-dock .dq-globe svg{display:block;width:100%;height:100%;stroke:currentColor;stroke-width:1.7}
#iotab-quick-dock .dq-empty{opacity:.66;cursor:default;box-shadow:none}
#iotab-quick-dock .dq-add{font-size:calc(var(--dq-size)*.72);line-height:1;font-weight:300;color:#12b981;background:rgba(255,255,255,.73)}
.dq-toggle{position:fixed;right:12px;bottom:4px;z-index:91;padding:3px 9px;background:rgba(28,41,59,.56);color:#fff;border:1px solid rgba(255,255,255,.26);border-radius:8px;font-size:11px;line-height:18px;cursor:pointer}
.dq-context{position:fixed;z-index:300100;min-width:156px;padding:6px;background:rgba(249,252,255,.94);border:1px solid rgba(255,255,255,.8);border-radius:14px;box-shadow:0 10px 38px rgba(10,25,46,.24);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.dq-context button{display:block;width:100%;padding:9px 12px;margin:0;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;font:inherit;font-size:13px;cursor:pointer}
.dq-context button:hover,.dq-context button:focus-visible{background:rgba(51,138,240,.12)}
.dq-context .dq-danger{color:#dc4059}
.dq-overlay{position:fixed;inset:0;z-index:300000;display:flex;align-items:center;justify-content:center;background:rgba(14,27,44,.27);padding:24px;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
.dq-dialog{width:430px;max-width:100%;max-height:calc(100vh - 48px);overflow:auto;padding:24px;border-radius:24px;background:rgba(248,252,255,.94);border:1px solid rgba(255,255,255,.88);box-shadow:0 20px 65px rgba(7,24,45,.25);text-align:left;user-select:text}
.dq-dialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:12px}
.dq-dialog h2{font-size:19px;font-weight:650;line-height:1.4;margin:0;color:inherit}
.dq-dialog button{font:inherit;cursor:pointer}
.dq-dialog .dq-close{border:0;background:rgba(80,108,138,.10);color:inherit;border-radius:50%;font-size:24px;line-height:30px;width:32px;height:32px;padding:0}
.dq-dialog label{display:block;font-size:13px;line-height:1.6;margin:14px 0;color:inherit}
.dq-dialog input{box-sizing:border-box;display:block;width:100%;margin-top:6px;padding:10px 12px;border:1px solid rgba(61,91,125,.18);border-radius:11px;background:rgba(255,255,255,.85);color:#253548;font:inherit;font-size:14px;line-height:20px;user-select:text}
.dq-dialog input:focus{outline:2px solid rgba(52,142,245,.55);outline-offset:1px}
.dq-meta-status{min-height:34px;color:#60758b;font-size:12px;line-height:1.5;margin:12px 0}
.dq-dialog footer{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
.dq-dialog footer button{border:0;border-radius:11px;padding:10px 22px;font-size:14px;line-height:20px}
.dq-dialog .dq-cancel{background:rgba(72,104,139,.10);color:inherit}
.dq-dialog .dq-save{background:#258bed;color:white}
.dq-toast{position:fixed;left:50%;bottom:116px;transform:translateX(-50%);z-index:300200;padding:10px 18px;max-width:80vw;white-space:normal;border-radius:12px;font-size:13px;line-height:20px;background:rgba(27,43,62,.92);color:#fff;box-shadow:0 4px 20px rgba(0,0,0,.18)}
.dq-copy-input{position:fixed;left:-10000px;top:0}
#iotab-quick-dock[hidden],#iotab-quick-dock [hidden],.dq-context[hidden],.dq-overlay[hidden],.dq-toast[hidden],.dq-toggle[hidden]{display:none !important}
html.io-black-mode #iotab-quick-dock{background:linear-gradient(135deg,rgba(26,36,51,.79),rgba(14,23,36,.65));border-color:rgba(255,255,255,.17);box-shadow:0 10px 38px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.12)}
html.io-black-mode #iotab-quick-dock .dq-section-label{color:#bacbdb}
html.io-black-mode #iotab-quick-dock .dq-divider{background:rgba(255,255,255,.23)}
html.io-black-mode #iotab-quick-dock .dq-icon{background:rgba(226,237,252,.10);border-color:rgba(255,255,255,.18);box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
html.io-black-mode #iotab-quick-dock .dq-icon:not(:disabled):hover{background:rgba(235,244,255,.20)}
html.io-black-mode #iotab-quick-dock .dq-add{color:#44e4b0}
html.io-black-mode #iotab-quick-dock .dq-globe{color:#b3c7db}
html.io-black-mode .dq-context,html.io-black-mode .dq-dialog{background:rgba(26,36,51,.96);color:#e7eff8;border-color:rgba(255,255,255,.15)}
html.io-black-mode .dq-dialog input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);color:#f0f5fb}
html.io-black-mode .dq-meta-status{color:#b4c5d7}
html.io-black-mode .dq-context .dq-danger{color:#ff8c9e}
@media (min-width:768px) and (pointer:fine){body.dq-desktop-visible .bm-content{height:calc(var(--height-vh,100vh) - 100px)}}
@media (max-width:767px),(pointer:coarse){#iotab-quick-dock,.dq-toggle,.dq-context,.dq-overlay{display:none !important}}
@media (prefers-reduced-motion:reduce){#iotab-quick-dock .dq-icon{transition:none}}

/* V3.0.37.1: transparent rail, intrinsic length, native icon tiles/editor. */
#iotab-quick-dock{
  --dq-size:clamp(32px,calc((100vw - 230px)/var(--dq-count,11)),var(--icon-size,60px));
  background:transparent !important;border:0 !important;box-shadow:none !important;
  -webkit-backdrop-filter:none !important;backdrop-filter:none !important;
  width:max-content;transition:width .18s ease;
}
#iotab-quick-dock .dq-quick,#iotab-quick-dock .dq-recent{display:flex !important;gap:8px;grid-template-columns:none !important}
#iotab-quick-dock .dq-icon{
  flex:0 0 var(--dq-size);border:0 !important;border-radius:var(--icon-radius,14px);
  background:transparent;box-shadow:none !important;
}
#iotab-quick-dock .dq-icon:not(:disabled):hover{background-color:var(--dq-icon-bg,#FFFFFF);box-shadow:none !important}
#iotab-quick-dock .dq-icon img{width:100%;height:100%;padding:0 !important;object-fit:contain;border-radius:inherit}
#iotab-quick-dock .dq-native-color{color:#fff;font-size:calc(var(--dq-size)*.46);font-weight:600;line-height:1}
#iotab-quick-dock .dq-add{background:#fff !important}
#iotab-quick-dock .dq-native-plus{display:flex;align-items:center;justify-content:center;width:64%;height:64%;border-radius:50%;background:#31ce98;color:#fff}
#iotab-quick-dock .dq-native-plus i{font-size:calc(var(--dq-size)*.51);line-height:1}
#iotab-quick-dock .dq-empty{background:rgba(255,255,255,.15) !important}
#iotab-quick-dock .dq-globe{color:#c4d4e2}
#iotab-quick-dock .dq-section-label{color:var(--icon-text-color,#fff) !important;text-shadow:0 1px 4px rgba(0,0,0,.55)}
#iotab-quick-dock .dq-divider{background:rgba(255,255,255,.48) !important}
/* The existing custom-icon form is the only editor; its original upload/crop controls stay intact. */
.bm-add-icon-popup.dq-native-editor .default-icon-box,.bm-add-icon-popup.dq-native-editor .add-gadget-box,
.bm-add-icon-popup.dq-native-editor .hide-custom-icon-box{display:none !important}
.bm-add-icon-popup.dq-native-editor .custom-icon-box{
  position:relative !important;inset:auto !important;transform:none !important;opacity:1 !important;
  width:100%;max-height:calc(100vh - 48px);box-shadow:none !important;
}
body.dq-native-open .bm-content{transform:none !important}
html.io-black-mode #iotab-quick-dock .dq-icon{background-color:transparent}
html.io-black-mode #iotab-quick-dock .dq-empty{background:rgba(255,255,255,.08) !important}

/* V3.0.37.2: no empty recent slots, label or divider. */
#iotab-quick-dock .dq-recent[hidden],#iotab-quick-dock .dq-recent-label[hidden],#iotab-quick-dock .dq-divider[hidden]{display:none !important}

/* V3.0.37.3: independent dock editor shell; original form/events are borrowed and restored. */
#iotab-dock-editor{
  position:fixed;inset:0;z-index:1050;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(17,30,47,.24);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  --dq-editor-text:#24364b;--dq-editor-muted:#63778e;--dq-editor-input:rgba(255,255,255,.78);
}
#iotab-dock-editor[hidden]{display:none !important}
#iotab-dock-editor .bm-add-icon-popup.dq-native-editor{
  position:relative !important;inset:auto !important;width:min(800px,100%) !important;
  height:auto !important;max-height:calc(100vh - 48px);overflow:visible !important;
  display:block !important;opacity:1 !important;outline:0;
}
#iotab-dock-editor .dq-native-editor .modal-dialog{
  margin:0 !important;width:100% !important;max-width:100% !important;
  transform:none !important;transition:none !important;
}
#iotab-dock-editor .dq-native-editor .modal-content{
  background:linear-gradient(135deg,rgba(252,254,255,.88),rgba(236,246,255,.74)) !important;
  border:1px solid rgba(255,255,255,.85) !important;border-radius:24px !important;
  box-shadow:0 22px 68px rgba(8,27,48,.26),inset 0 1px 0 rgba(255,255,255,.9) !important;
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  color:var(--dq-editor-text) !important;
}
#iotab-dock-editor .dq-native-editor .custom-icon-box{
  background:transparent !important;border-radius:24px !important;
}
#iotab-dock-editor .dq-native-editor .modal-header{
  background:rgba(255,255,255,.18) !important;border-bottom:1px solid rgba(94,125,159,.12) !important;
  padding:16px 20px !important;border-radius:24px 24px 0 0 !important;
}
#iotab-dock-editor .dq-native-editor .modal-body{
  background:transparent !important;padding:20px !important;
  max-height:calc(100vh - 130px);overflow-y:auto;overscroll-behavior:contain;
  color:var(--dq-editor-text) !important;font-size:14px;line-height:1.5;
}
#iotab-dock-editor .dq-native-editor input:not([type=radio]):not([type=checkbox]):not([type=file]),
#iotab-dock-editor .dq-native-editor textarea,#iotab-dock-editor .dq-native-editor select{
  background:var(--dq-editor-input) !important;border-color:rgba(82,116,154,.23) !important;
  color:var(--dq-editor-text) !important;-webkit-text-fill-color:var(--dq-editor-text) !important;
  font-size:14px !important;line-height:1.5 !important;font-weight:400 !important;
  text-shadow:none !important;filter:none !important;opacity:1 !important;
  -webkit-text-size-adjust:100%;text-size-adjust:100%;border-radius:11px !important;
}
#iotab-dock-editor .dq-native-editor input::placeholder,#iotab-dock-editor .dq-native-editor textarea::placeholder{
  color:var(--dq-editor-muted) !important;-webkit-text-fill-color:var(--dq-editor-muted) !important;opacity:1 !important;
}
#iotab-dock-editor .dq-native-editor .text-muted,#iotab-dock-editor .dq-native-editor .iotab-auto-icon-preview span{
  color:var(--dq-editor-muted) !important;-webkit-text-fill-color:var(--dq-editor-muted) !important;
  font-size:12px !important;line-height:1.5 !important;text-shadow:none !important;
}
#iotab-dock-editor .dq-native-editor .btn,#iotab-dock-editor .dq-native-editor label{
  line-height:1.5 !important;text-shadow:none !important;filter:none !important;
}
#iotab-dock-editor .dq-native-editor .btn{font-size:13px !important}
#iotab-dock-editor .dq-native-editor .iotab-add-meta-status{font-size:12px !important;line-height:1.5 !important;text-shadow:none !important}
html.io-black-mode #iotab-dock-editor{
  background:rgba(4,12,23,.45);--dq-editor-text:#edf4fc;--dq-editor-muted:#b6c8dc;--dq-editor-input:rgba(236,245,255,.08);
}
html.io-black-mode #iotab-dock-editor .dq-native-editor .modal-content{
  background:linear-gradient(135deg,rgba(30,44,62,.92),rgba(17,29,46,.86)) !important;
  border-color:rgba(222,238,255,.17) !important;
  box-shadow:0 22px 68px rgba(0,0,0,.40),inset 0 1px 0 rgba(255,255,255,.1) !important;
}
html.io-black-mode #iotab-dock-editor .dq-native-editor .modal-header{
  background:rgba(255,255,255,.025) !important;border-bottom-color:rgba(222,238,255,.12) !important;
}
html.io-black-mode #iotab-dock-editor .dq-native-editor input:not([type=radio]):not([type=checkbox]):not([type=file]),
html.io-black-mode #iotab-dock-editor .dq-native-editor textarea{border-color:rgba(215,232,254,.22) !important}
@media (max-height:560px){#iotab-dock-editor{padding:12px}#iotab-dock-editor .dq-native-editor .modal-body{max-height:calc(100vh - 110px)}}
/* Keep the borrowed editor above desktop windows, with native cropping above it. */
#iotab-dock-editor{z-index:300000}
body.dq-native-open .img-editor-modal{z-index:300050 !important}
/* V3.0.37.4: foreground notifications, draggable header, reliable native fade lifecycle. */
body .notification-container{z-index:2147483600 !important}
.dq-toast{left:auto !important;right:18px;bottom:24px !important;transform:none !important;z-index:2147483600 !important;max-width:min(420px,calc(100vw - 36px));text-align:left}
#iotab-dock-editor .dq-native-editor:not(.show):not(.in){opacity:0 !important}
#iotab-dock-editor .dq-native-editor.show,#iotab-dock-editor .dq-native-editor.in{opacity:1 !important}
#iotab-dock-editor .dq-native-editor .modal-header{cursor:move;touch-action:none;user-select:none}
#iotab-dock-editor .dq-native-heading{margin:0;font-size:17px;font-weight:600;line-height:1.5;color:var(--dq-editor-text);-webkit-text-fill-color:var(--dq-editor-text);text-shadow:none}
#iotab-dock-editor .iotab-custom-header-actions{margin-left:auto}
#iotab-dock-editor .dq-dragging{cursor:grabbing}
#iotab-dock-editor .dq-saving .add-icon-btn{pointer-events:none;opacity:.65}
#iotab-dock-editor .dq-login-note{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:10px 12px;border-radius:11px;background:rgba(69,142,219,.08);border:1px solid rgba(69,142,219,.17);font-size:12px;line-height:1.5;color:var(--dq-editor-muted);-webkit-text-fill-color:var(--dq-editor-muted)}
#iotab-dock-editor .dq-login-button{flex-shrink:0;padding:5px 14px;border-radius:8px;background:#258bed;color:#fff !important;-webkit-text-fill-color:#fff !important;text-decoration:none;line-height:1.5;font-size:13px}
/* V3.0.37.5: content-sized window leaves room for vertical dragging. */
#iotab-dock-editor .dq-native-editor .modal-dialog{display:block !important;min-height:0 !important;height:auto !important;align-items:initial !important}
#iotab-dock-editor .dq-native-editor .modal-content,#iotab-dock-editor .dq-native-editor .custom-icon-box{min-height:0 !important;height:auto !important;max-height:calc(100vh - 120px) !important}
#iotab-dock-editor .dq-native-editor .modal-body{flex:0 1 auto !important;min-height:0 !important;height:auto !important;max-height:min(440px,calc(100vh - 220px)) !important}
#iotab-dock-editor .dq-native-editor .icon-set-box{min-height:140px !important}
#iotab-dock-editor .dq-save-add{color:#1875c9 !important;-webkit-text-fill-color:#1875c9 !important;background:rgba(37,139,237,.10) !important;border-color:rgba(37,139,237,.32) !important;white-space:nowrap}
#iotab-dock-editor .dq-save-add:hover{color:#1262b0 !important;-webkit-text-fill-color:#1262b0 !important;background:rgba(37,139,237,.19) !important}
#iotab-dock-editor .dq-saving .dq-save-add{pointer-events:none;opacity:.65}
html.io-black-mode #iotab-dock-editor .dq-save-add{color:#94caff !important;-webkit-text-fill-color:#94caff !important;background:rgba(68,150,235,.15) !important}

/* V3.0.38.3: clear surroundings; glass stays confined to the editor surface. */
#iotab-dock-editor,html.io-black-mode #iotab-dock-editor{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}
body.dq-native-open .modal-backdrop,body.dq-native-open .window-mask{background:transparent!important;background-color:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}

#iotab-quick-dock .dq-loading:after{content:'';width:22%;height:22%;border:2px solid rgba(100,120,145,.18);border-top-color:#829ab6;border-radius:50%;animation:dq-wait .8s linear infinite} @keyframes dq-wait{to{transform:rotate(360deg)}}
#iotab-quick-dock [hidden]{display:none!important}

/* V3.0.40.16: visible only during mouse transfers. */
@media (min-width:768px) and (hover:hover) and (pointer:fine){
 #iotab-quick-dock .dq-quick.dq-drop-ready{outline:2px solid #47c8ff;outline-offset:7px;border-radius:14px;box-shadow:0 0 20px #47c8ff66}
 #iotab-quick-dock .dq-moving-source{opacity:.35}
 .dq-moving{user-select:none;cursor:grabbing}
}
.dq-move-hint{position:fixed;z-index:100010;bottom:108px;left:50%;transform:translateX(-50%);padding:9px 16px;border-radius:16px;background:rgba(24,35,49,.9);color:#fff;font-size:13px;pointer-events:none;box-shadow:0 4px 20px #0003}
.dq-move-hint[hidden]{display:none}
.dq-move-ghost{position:fixed;z-index:100020;pointer-events:none;border:0;border-radius:14px;overflow:hidden;padding:0;opacity:.85;background:#fff;box-shadow:0 8px 24px #0004}
.dq-move-ghost img{width:100%;height:100%;object-fit:cover}
.dq-move-saving{position:fixed;inset:0;z-index:100030;display:flex;justify-content:center;align-items:flex-end;padding-bottom:110px;background:transparent;color:#fff;text-shadow:0 1px 5px #000;font-size:14px;cursor:wait}

.dq-move-ghost{display:flex;align-items:center;justify-content:center}
.dq-move-ghost .dq-native-color{font-weight:600;line-height:1}
.dq-move-ghost .dq-globe{display:flex;align-items:center;justify-content:center;width:70%;height:70%}
.dq-move-ghost .dq-globe[hidden]{display:none}
.dq-move-ghost svg{width:100%;height:100%;stroke:currentColor;stroke-width:1.8}
