.dpmm{width:100%;box-sizing:border-box;border:1px solid rgba(128,128,128,.28);border-radius:14px;padding:16px;background:rgba(255,255,255,.72);color:#222}
.dpmm *{box-sizing:border-box}.dpmm-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}.dpmm-head h2{margin:0 0 4px;font-size:22px}.dpmm-head p{margin:0;color:#777}.dpmm-usage{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.dpmm-usage span{font-size:12px;border:1px solid rgba(128,128,128,.3);border-radius:999px;padding:5px 9px;background:rgba(255,255,255,.65)}
.dpmm-upload{display:flex;gap:10px;align-items:end;flex-wrap:wrap;border:1px dashed rgba(128,128,128,.35);border-radius:12px;padding:12px;margin-bottom:12px}.dpmm-field{display:flex;flex-direction:column;gap:5px}.dpmm-field span{font-size:12px;color:#777}.dpmm-field select{min-height:36px;border:1px solid rgba(128,128,128,.35);border-radius:10px;padding:0 10px;background:#fff}.dpmm-file input{display:none}.dpmm-file span,.dpmm-btn{display:inline-flex;align-items:center;justify-content:center;min-height:36px;border-radius:10px;border:1px solid rgba(128,128,128,.35);padding:0 14px;background:#fff;cursor:pointer}.dpmm-btn{background:#222;color:#fff;border-color:#222}.dpmm-rules{width:100%;font-size:12px;color:#777}.dpmm-message{display:none;margin:8px 0;padding:10px;border-radius:10px}.dpmm-message.is-show{display:block}.dpmm-message.is-error{background:#fff0f0;color:#a40000}.dpmm-message.is-ok{background:#efffed;color:#116400}
.dpmm-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.dpmm-item{border:1px solid rgba(128,128,128,.24);border-radius:12px;overflow:hidden;background:rgba(255,255,255,.72)}.dpmm-thumb{aspect-ratio:1/1;background:rgba(128,128,128,.08);display:flex;align-items:center;justify-content:center;overflow:hidden}.dpmm-thumb img{width:100%;height:100%;object-fit:cover;display:block}.dpmm-file-icon{font-weight:700;font-size:22px;color:#777}.dpmm-meta{padding:9px;display:flex;flex-direction:column;gap:3px}.dpmm-meta strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dpmm-meta span{font-size:12px;color:#777}.dpmm-actions{display:flex;border-top:1px solid rgba(128,128,128,.18)}.dpmm-actions button{flex:1;border:0;background:transparent;padding:8px 4px;font-size:12px;cursor:pointer}.dpmm-actions button+button{border-left:1px solid rgba(128,128,128,.18)}.dpmm-box{border:1px solid rgba(128,128,128,.28);border-radius:12px;padding:14px;background:rgba(255,255,255,.72)}
@media(max-width:1100px){.dpmm-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:760px){.dpmm-head{flex-direction:column}.dpmm-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dpmm-upload{align-items:stretch}.dpmm-field,.dpmm-file,.dpmm-btn{width:100%}.dpmm-file span,.dpmm-btn{width:100%}}
body.dark .dpmm,.dark .dpmm{background:rgba(30,30,30,.72);color:#eee;border-color:rgba(255,255,255,.18)}body.dark .dpmm-head p,.dark .dpmm-head p,body.dark .dpmm-meta span,.dark .dpmm-meta span,body.dark .dpmm-rules,.dark .dpmm-rules{color:#aaa}body.dark .dpmm-item,.dark .dpmm-item,body.dark .dpmm-usage span,.dark .dpmm-usage span{background:rgba(40,40,40,.72);border-color:rgba(255,255,255,.16)}

/* v1.0.1 modal uploader */
.dpmm-modal[hidden]{display:none!important}.dpmm-modal{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:18px}.dpmm-modal-mask{position:absolute;inset:0;background:rgba(0,0,0,.58);backdrop-filter:blur(3px)}.dpmm-modal-panel{position:relative;width:min(420px,calc(100vw - 28px));background:#fff;color:#111;border:1px solid rgba(255,255,255,.35);box-shadow:0 24px 70px rgba(0,0,0,.35);border-radius:18px;overflow:hidden}.dpmm-modal-close{position:absolute;right:12px;top:10px;width:32px;height:32px;border:0;border-radius:999px;background:rgba(0,0,0,.06);font-size:24px;line-height:28px;cursor:pointer}.dpmm-modal-head{padding:18px 52px 12px 18px;border-bottom:1px solid rgba(128,128,128,.18);display:flex;flex-direction:column;gap:4px}.dpmm-modal-head strong{font-size:18px}.dpmm-modal-head span{font-size:13px;color:#666}.dpmm-modal-body{padding:18px;display:grid;gap:12px}.dpmm-modal-file{display:flex;align-items:center;justify-content:center;min-height:120px;border:1px dashed rgba(0,0,0,.25);border-radius:14px;background:rgba(0,0,0,.025);cursor:pointer}.dpmm-modal-file input{display:none}.dpmm-modal-file span{font-weight:800}.dpmm-modal-note{font-size:12px;color:#777;line-height:1.5}.dpmm-modal .dpmm-btn{width:100%;height:42px;border:0;border-radius:12px;background:#111;color:#fff;font-weight:800;cursor:pointer}.dpmm-modal .dpmm-message{min-height:22px}.dpmm-modal.is-open .dpmm-modal-panel{animation:dpmmPop .16s ease-out}@keyframes dpmmPop{from{transform:translateY(8px) scale(.98);opacity:.3}to{transform:none;opacity:1}}body.dark .dpmm-modal-panel,.dark .dpmm-modal-panel{background:#181818;color:#eee;border-color:rgba(255,255,255,.18)}body.dark .dpmm-modal-head span,.dark .dpmm-modal-head span,body.dark .dpmm-modal-note,.dark .dpmm-modal-note{color:#aaa}body.dark .dpmm-modal-file,.dark .dpmm-modal-file{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.22)}body.dark .dpmm-modal-close,.dark .dpmm-modal-close{background:rgba(255,255,255,.12);color:#fff}body.dark .dpmm-modal .dpmm-btn,.dark .dpmm-modal .dpmm-btn{background:#fff;color:#111}

/* v1.1.4 library-style modal */
.dpmm-modal{padding:10px;align-items:center;justify-content:center}
.dpmm-modal .dpmm-library-panel{width:min(1200px,calc(100vw - 22px));height:min(700px,calc(100vh - 22px));border-radius:14px;background:#fff;color:#111;display:flex;flex-direction:column;overflow:hidden}
.dpmm-modal .dpmm-modal-head{height:52px;min-height:52px; border-bottom:1px solid #e2e2e2;background:#fff;gap:2px}
.dpmm-modal .dpmm-modal-head strong{font-size:14px;line-height:1.2;font-weight:900}.dpmm-modal .dpmm-modal-head span{font-size:11px;color:#777}.dpmm-modal .dpmm-modal-close{right:10px;top:8px;width:24px;height:24px;font-size:18px;line-height:20px;background:#f0f0f0;z-index:4}.dpmm-library{display:grid;grid-template-columns:280px 1fr;min-height:0;flex:1;background:#fff}.dpmm-library-side{border-right:1px solid #ddd;padding:24px 14px 14px;display:flex;flex-direction:column;min-height:0}.dpmm-cat-actions{display:flex;gap:8px;margin-bottom:18px}.dpmm-cat-actions button{border:0;color:#fff;font-weight:800;padding:9px 12px;cursor:pointer}.dpmm-cat-edit{background:#83bfac}.dpmm-cat-add{background:#74a2cb}.dpmm-cat-del{background:#c97e7e}.dpmm-cat-tree{flex:1;min-height:220px;position:relative;padding-left:12px}.dpmm-cat-tree:before{content:"";position:absolute;left:10px;top:0;width:1px;height:120px;background:#d7d7d7}.dpmm-cat-node{position:relative;font-weight:800;font-size:12px;line-height:24px;margin:1px 0 1px 0;padding-left:28px;color:#111}.dpmm-cat-node span{position:absolute;left:-2px;top:2px;width:20px;height:20px;background:#dedede}.dpmm-cat-node.is-child{margin-left:28px}.dpmm-cat-node.is-child:before{content:"";position:absolute;left:-28px;top:12px;width:28px;height:1px;background:#d7d7d7}.dpmm-library-side .dpmm-modal-file{min-height:78px;border:1px dashed #d5d5d5;border-radius:8px;background:#fff;margin-top:auto;width:100%}.dpmm-library-side .dpmm-modal-file span{font-size:12px}
.dpmm-library-side .dpmm-btn{height: 34px;
    border-radius: 7px;
    margin-top: 8px;
    background: #0098c7;
    color: #fff;
    font-size: 15px;}.dpmm-library-side .dpmm-modal-note{font-size:10px;color:#888;margin-top:8px}.dpmm-library-side .dpmm-message{font-size:12px;padding:7px;margin:8px 0 0}.dpmm-library-main{min-width:0;min-height:0;display:flex;flex-direction:column;padding:22px 24px;background:#fff}.dpmm-library-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;color:#666;font-size:13px}.dpmm-library-toolbar strong{color:#111}.dpmm-library-grid .dpmm-meta{padding:7px 9px;gap:0;min-height:28px}.dpmm-library-grid .dpmm-meta strong{display:none}.dpmm-library-grid .dpmm-meta span{font-size:12px;font-weight:900;color:#000}.dpmm-library-grid .dpmm-actions{display:none}.dpmm-empty{grid-column:1/-1;color:#777;font-size:13px;padding:24px}.dpmm-empty.is-error{color:#b00000}.dpmm-modal.is-open .dpmm-library-panel{animation:dpmmPop .16s ease-out}
@media(max-width:760px){.dpmm-modal .dpmm-library-panel{height:calc(100vh - 16px)}.dpmm-library{grid-template-columns:1fr}.dpmm-library-side{border-right:0;border-bottom:1px solid #ddd;min-height:260px}.dpmm-library-main{padding:14px}}
body.dark .dpmm-modal .dpmm-library-panel,.dark .dpmm-modal .dpmm-library-panel,body.dark .dpmm-modal .dpmm-modal-head,.dark .dpmm-modal .dpmm-modal-head,body.dark .dpmm-library,.dark .dpmm-library,body.dark .dpmm-library-main,.dark .dpmm-library-main{background:#181818;color:#eee}body.dark .dpmm-library-side,.dark .dpmm-library-side{border-color:rgba(255,255,255,.14)}body.dark .dpmm-library-grid .dpmm-item,.dark body.dark .dpmm-library-toolbar strong,.dark .dpmm-library-toolbar strong,body.dark .dpmm-cat-node,.dark .dpmm-cat-node{color:#eee}body.dark .dpmm-library-grid .dpmm-meta span,.dark .dpmm-library-grid .dpmm-meta span{color:#eee}

/* v1.1.5 cleanup: member folder/category rules + vertical-only library scroll */
.dpmm-cat-tree{overflow-x:hidden;overflow-y:auto;max-height:260px;padding-right:4px}
.dpmm-cat-node{display:block;width:100%;border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit}
.dpmm-cat-node.is-active{color:#000}
.dpmm-cat-node.is-active span{background:#bfbfbf}
.dpmm-library-main{overflow:hidden}

.dpmm-library-grid .dpmm-empty{white-space:normal}
.dpmm-modal-file span{white-space:nowrap}
@media(max-width:760px){.dpmm-cat-tree{max-height:140px}}


/* v1.1.6 tree category UI: file-manager style, 2 levels, collapsible */
.dpmm-cat-tree{padding-left:0;border-left:0;max-height:280px;overflow-y:auto;overflow-x:hidden}
.dpmm-cat-tree:before{display:none!important}
.dpmm-tree-row{display:flex;align-items:center;min-height:28px;gap:4px;margin:2px 0;white-space:nowrap}
.dpmm-tree-row.is-child{padding-left:28px}
.dpmm-cat-toggle{width:18px;height:24px;border:0;background:transparent;color:#111;font-weight:900;font-size:15px;line-height:22px;text-align:center;cursor:pointer;padding:0;flex:0 0 18px}
.dpmm-cat-toggle.is-placeholder{display:inline-block;cursor:default}
.dpmm-cat-node{display:flex;align-items:center;gap:6px;min-height:26px;width:calc(100% - 24px);border:0;background:transparent;text-align:left;cursor:pointer;font-family:inherit;font-weight:800;font-size:12px;color:#111;padding:2px 6px;border-radius:6px;line-height:20px}
.dpmm-cat-node:hover{background:rgba(0,0,0,.055)}
.dpmm-cat-node.is-active{background:rgba(0,0,0,.095);color:#000}
.dpmm-folder{display:inline-flex;width:18px;min-width:18px;align-items:center;justify-content:center;font-size:15px;line-height:1;background:transparent!important;position:static!important;height:auto!important}
.dpmm-cat-name{display:block;overflow:hidden;text-overflow:ellipsis;background:transparent!important;position:static!important;width:auto!important;height:auto!important}
.dpmm-cat-node span{position:static;width:auto;height:auto;background:transparent}.dpmm-cat-node.is-child:before,.dpmm-cat-node:before{display:none!important}
.dpmm-tree-row.is-child:before{content:"";width:14px;height:1px;background:#d7d7d7;margin-left:-18px;margin-right:0;flex:0 0 14px}
.dpmm-cat-node.is-child{margin-left:0;padding-left:6px}.dpmm-cat-node.is-active span{background:transparent!important}
body.dark .dpmm-cat-toggle,.dark .dpmm-cat-toggle{color:#eee}
body.dark .dpmm-cat-node:hover,.dark .dpmm-cat-node:hover{background:rgba(255,255,255,.08)}
body.dark .dpmm-cat-node.is-active,.dark .dpmm-cat-node.is-active{background:rgba(255,255,255,.14);color:#fff}
@media(max-width:760px){.dpmm-cat-tree{max-height:160px}.dpmm-tree-row.is-child{padding-left:24px}}


/* v1.1.7 compact tree CRUD UI */
.dpmm-cat-actions{gap:5px;margin-bottom:8px;align-items:center}
.dpmm-cat-actions button{padding: 7px 9px;
    width: 100%;
    font-size: 13px;
    border-radius: 5px;line-height:1;white-space:nowrap}
.dpmm-cat-tree{max-height:300px;padding:2px 0 6px;margin:0;}
.dpmm-tree-row{min-height:22px;margin:0;gap:1px;}
.dpmm-tree-row.is-child{padding-left:18px;}
.dpmm-cat-toggle{width:14px;height:22px;line-height:20px;font-size:13px;flex:0 0 14px;}
.dpmm-cat-node{min-height:22px;line-height:18px;padding:6px 5px;border-radius:4px;font-size: 14px;
    font-weight: 400;gap:4px;width:calc(100% - 16px);}
.dpmm-folder{font-size:13px;width:15px;min-width:15px;}
.dpmm-tree-row.is-child:before{width:10px;flex:0 0 10px;margin-left:-12px;background:#d0d0d0;}
.dpmm-cat-name{line-height:18px;}
.dpmm-cat-node.is-active{background:#e9e9e9;}
.dpmm-library-side{padding-top:18px;}
@media(max-width:760px){.dpmm-tree-row.is-child{padding-left:16px}.dpmm-cat-actions button{padding:7px 8px}}

/* v1.1.9 shortcode workspace + CRUD/upload fix */
.dpmm-workspace{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.dpmm-side{border:1px solid rgba(128,128,128,.28);border-radius:12px;padding:12px;background:rgba(255,255,255,.45);min-height:220px}
.dpmm-main{min-width:0}.dpmm-toolbar{display:flex;justify-content:space-between;align-items:center;margin:8px 0 10px;font-size:13px;color:#666}.dpmm-toolbar strong{color:inherit}.dpmm .dpmm-grid{overflow-x:hidden}.dpmm .dpmm-cat-actions button{border-radius:6px}.dpmm .dpmm-cat-tree{min-height:120px;max-height:360px}
@media(max-width:760px){.dpmm-workspace{grid-template-columns:1fr}.dpmm-side{min-height:auto}.dpmm .dpmm-cat-tree{max-height:180px}}

/* v1.1.13 media card actions: checkbox, selected state, delete icon, apply toolbar */
.dpmm-item{position:relative;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}
.dpmm-item.is-selected{border-color:#7eb5ff!important;box-shadow:0 0 0 2px #111,0 10px 24px rgba(0,0,0,.12)}
.dpmm-card-tools{position:absolute;left:0;right:0;top:0;z-index:3;display:flex;justify-content:space-between;align-items:flex-start;padding:6px;pointer-events:none}
.dpmm-select-wrap,.dpmm-delete-icon{pointer-events:auto}
.dpmm-select-wrap{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.28);box-shadow:0 2px 8px rgba(0,0,0,.12);cursor:pointer}
.dpmm-select-wrap input{position:absolute;opacity:0;pointer-events:none}
.dpmm-select-wrap span{width:14px;height:14px;border:1px solid #222;border-radius:3px;background:#fff;display:block;position:relative}
.dpmm-select-wrap input:checked+span{background:#111;border-color:#111}
.dpmm-select-wrap input:checked+span:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.dpmm-delete-icon{width:26px;height:26px;border:0;border-radius:999px;background:rgba(255,255,255,.94);color:#111;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(0,0,0,.14);cursor:pointer}
.dpmm-delete-icon:hover{background:#d90000;color:#fff}
.dpmm-select-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:9px 10px;border:1px solid rgba(128,128,128,.22);border-radius:10px;background:rgba(255,255,255,.6);font-size:12px}
.dpmm-select-toolbar span{font-weight:800;color:#555;margin-right:auto}.dpmm-select-toolbar button{border:1px solid rgba(0,0,0,.22);border-radius:8px;background:#fff;color:#111;padding:7px 10px;font-weight:800;font-size:12px;cursor:pointer}.dpmm-select-toolbar button.is-danger{background:#fff1f1;color:#c90000;border-color:#ffc4c4}.dpmm-select-toolbar button:disabled{opacity:.42;cursor:not-allowed}.dpmm-thumb[data-dpmm-card-pick],.dpmm-meta[data-dpmm-card-pick]{cursor:pointer}
.dpmm-library-grid .dpmm-card-tools{padding:4px}.dpmm-library-grid .dpmm-select-wrap{width:22px;height:22px;border-radius:4px}.dpmm-library-grid .dpmm-delete-icon{width:23px;height:23px}.dpmm-library-grid .dpmm-item.is-selected{box-shadow:0 0 0 0 #111}
body.dark .dpmm-item.is-selected,.dark .dpmm-item.is-selected{border-color:#fff!important;box-shadow:0 0 0 2px #fff,0 10px 24px rgba(0,0,0,.35)}body.dark .dpmm-select-toolbar,.dark .dpmm-select-toolbar{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18)}body.dark .dpmm-select-toolbar span,.dark .dpmm-select-toolbar span{color:#ddd}body.dark .dpmm-select-toolbar button,.dark .dpmm-select-toolbar button{background:#222;color:#eee;border-color:rgba(255,255,255,.22)}body.dark .dpmm-select-toolbar button.is-danger,.dark .dpmm-select-toolbar button.is-danger{background:#3a1111;color:#ffb0b0;border-color:#6d2929}

/* v1.1.14 picker / manager mode + positioning */
.dpmm,.dpmm-modal{font-family:'Microsoft JhengHei','微軟正黑體',Arial,sans-serif}
.dpmm-modal.is-picker-mode .dpmm-select-toolbar{display:none!important}
.dpmm-modal.is-picker-mode .dpmm-select-wrap{display:none!important}
.dpmm-modal.is-picker-mode .dpmm-item.is-selected{border-color:#bfbfbf!important;box-shadow:none!important}
.dpmm-modal.is-picker-mode .dpmm-thumb[data-dpmm-card-pick],.dpmm-modal.is-picker-mode .dpmm-meta[data-dpmm-card-pick]{cursor:pointer}
.dpmm-modal.is-manager-mode .dpmm-select-toolbar,.dpmm.is-manager-mode .dpmm-select-toolbar{display:flex}
.dpmm-position-panel{margin:0 0 14px;border:1px solid #ddd;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.06)}
.dpmm-position-head{height:42px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eee;font-size:13px}.dpmm-position-head strong{font-weight:900;color:#111}.dpmm-position-head button{width:28px;height:28px;border:0;border-radius:50%;background:#f1f1f1;color:#111;font-size:18px;line-height:26px;cursor:pointer}
.dpmm-position-body{display:grid;grid-template-columns:240px 1fr;gap:16px;padding:14px}.dpmm-position-preview{background:#ddd;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid #ccc}.dpmm-position-body.is-avatar .dpmm-position-preview{width:150px;height:150px;border-radius:999px;margin:auto}.dpmm-position-body.is-banner .dpmm-position-preview{border-radius:8px}.dpmm-position-preview img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .08s ease,object-position .08s ease}.dpmm-position-controls{display:grid;gap:10px;align-content:start}.dpmm-position-controls label{display:grid;grid-template-columns:70px 1fr;align-items:center;gap:10px;font-size:12px;font-weight:800;color:#333}.dpmm-position-controls input[type=range]{width:100%}.dpmm-position-actions{display:flex;gap:8px;margin-top:4px}.dpmm-position-actions button{border:1px solid #ddd;border-radius:8px;background:#fff;color:#111;font-weight:900;padding:8px 14px;cursor:pointer}.dpmm-position-actions button:first-child{background:#050505;color:#fff;border-color:#050505}
body.dark .dpmm-position-panel,.dark .dpmm-position-panel{background:#181818;border-color:rgba(255,255,255,.18)}body.dark .dpmm-position-head,.dark .dpmm-position-head{border-color:rgba(255,255,255,.12)}body.dark .dpmm-position-head strong,.dark .dpmm-position-head strong,body.dark .dpmm-position-controls label,.dark .dpmm-position-controls label{color:#eee}body.dark .dpmm-position-head button,.dark .dpmm-position-head button,body.dark .dpmm-position-actions button,.dark .dpmm-position-actions button{background:#222;color:#eee;border-color:rgba(255,255,255,.2)}body.dark .dpmm-position-actions button:first-child,.dark .dpmm-position-actions button:first-child{background:#fff;color:#111;border-color:#fff}
@media(max-width:720px){.dpmm-position-body{grid-template-columns:1fr}.dpmm-position-body.is-banner .dpmm-position-preview{width:100%;max-width:260px;margin:auto}.dpmm-position-controls label{grid-template-columns:64px 1fr}}

/* v1.1.15 accurate frontend ratio preview */
.dpmm-position-ratio{margin-top:8px;font-size:11px;color:#777;text-align:center;font-weight:700}.dpmm-position-preview{max-width:100%;box-sizing:border-box}.dpmm-position-preview.is-bg{background-repeat:no-repeat;background-size:cover;background-position:50% 50%;overflow:hidden}.dp-mh-avatar{overflow:hidden}.dp-mh-avatar img{object-fit:cover}.dp-mh-cover{background-repeat:no-repeat;background-size:cover}

/* v1.1.18 banner preview uses frontend real ratio, no fixed 330/150px height */
.dpmm-position-body.is-banner .dpmm-position-preview{overflow:hidden;position:relative;background:#ddd}
.dpmm-position-body.is-banner .dpmm-position-preview img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;max-width:none!important}
.dp-mh-cover{overflow:hidden!important;position:relative!important;background-repeat:no-repeat!important;background-size:cover!important}
.dp-mh-cover>img,.dp-mh-cover img[data-dpmm-banner-layer]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;max-width:none!important;display:block!important}

/* v1.1.22 mobile RWD rebuild: compact modal, category/upload compression, crop panel fit */
.dpmm-modal{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}
.dpmm-modal .dpmm-library-panel{max-width:100%;max-height:100dvh}


.dpmm-modal .dpmm-modal-head{position:sticky;top:0;z-index:5}
.dpmm-library-side .dpmm-modal-file,.dpmm-modal-file{transition:border-color .12s ease,background .12s ease}

@media(max-width:760px){
    body:has(.dpmm-modal.is-open){overflow:hidden}
    .dpmm-modal{padding:0;align-items:stretch;justify-content:stretch}
    .dpmm-modal .dpmm-library-panel{width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0;box-shadow:none}
    .dpmm-modal .dpmm-modal-head{height:56px;min-height:56px;padding:13px 58px 10px 18px;background:#fff}
    .dpmm-modal .dpmm-modal-head strong{font-size:20px;line-height:1.25}
    .dpmm-modal .dpmm-modal-close{top:10px;right:14px;width:38px;height:38px;font-size:28px;line-height:34px;background:#f1f1f1}
    .dpmm-library{display:flex;flex-direction:column;min-height:0;overflow:hidden}
    .dpmm-library-side{display:grid;grid-template-columns:1fr;gap:10px;flex:0 0 auto;min-height:0;max-height:42dvh;overflow:auto;border-right:0;border-bottom:1px solid #ddd;padding:12px 18px;background:#fff}
    .dpmm-cat-actions{position:sticky;top:0;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0;background:inherit;padding-bottom:2px}
    .dpmm-cat-actions button{min-height:30px;padding:0 8px;font-size:13px;border-radius:10}
    .dpmm-cat-tree{min-height:0!important;max-height:128px!important;padding:0 0 4px 0;overflow-y:auto;border:0}
    .dpmm-tree-row{min-height:28px;margin:0 0 4px 0;gap:3px}
    .dpmm-cat-toggle{height:28px;line-height:26px;flex:0 0 18px;width:18px;font-size:16px}
    .dpmm-cat-node{min-height:28px;line-height:24px;font-size:16px;padding:2px 8px;border-radius:0;width:calc(100% - 20px)}
    .dpmm-folder{font-size:18px;width:22px;min-width:22px}.dpmm-cat-name{line-height:24px}
    .dpmm-tree-row.is-child{padding-left:26px}.dpmm-tree-row.is-child:before{width:10px;flex:0 0 10px;margin-left:-16px}
    .dpmm-library-side .dpmm-modal-file{min-height:86px;margin:0;border-radius:0}.dpmm-library-side .dpmm-modal-file span{font-size:17px}
    .dpmm-library-side .dpmm-btn{height:44px;margin:0;border-radius:8px;font-size:16px}.dpmm-library-side .dpmm-modal-note{margin:0;font-size:13px}.dpmm-library-side .dpmm-message{margin:0;font-size:13px}
    .dpmm-library-main{flex:1 1 auto;min-height:0;padding:14px 18px 18px;background:#fff;overflow:hidden}
    .dpmm-library-toolbar{margin:0 0 10px;font-size:14px}.dpmm-library-toolbar strong{font-size:15px}.dpmm-library-toolbar span{font-size:14px}
    .dpmm-select-toolbar{margin:0 0 10px;border-radius:0;padding:8px 9px}
    
    .dpmm-library-grid .dpmm-meta{min-height:32px;padding:7px 8px}.dpmm-library-grid .dpmm-meta span{font-size:12px;line-height:1.25}
    .dpmm-empty{padding:18px 4px;font-size:14px}

    .dpmm-position-panel{margin:0 0 12px;border-radius:0;box-shadow:none}
    .dpmm-position-head{height:48px;padding:0 12px;font-size:16px}.dpmm-position-head button{width:34px;height:34px;font-size:24px;line-height:30px}
    .dpmm-position-body{grid-template-columns:1fr;gap:12px;padding:12px}
    .dpmm-position-body.is-avatar .dpmm-position-preview{width:min(46vw,168px);height:min(46vw,168px)}
    .dpmm-position-body.is-banner .dpmm-position-preview{width:100%;max-width:none;margin:0;max-height:190px}
    .dpmm-position-controls{gap:9px}.dpmm-position-controls label{grid-template-columns:58px 1fr;font-size:13px}.dpmm-position-actions{display:grid;grid-template-columns:1fr 1fr}.dpmm-position-actions button{min-height:40px;border-radius:8px}
}

@media(max-width:420px){
    .dpmm-modal .dpmm-modal-head strong{font-size:19px}
    .dpmm-library-side{max-height:40dvh;padding:10px 14px}.dpmm-cat-tree{max-height:112px!important}.dpmm-library-main{padding:12px 14px 16px}.dpmm-cat-actions button{font-size:12px}.dpmm-position-body.is-avatar .dpmm-position-preview{width:156px;height:156px}
}

@media(min-width:761px) and (max-width:1024px){
    .dpmm-modal .dpmm-library-panel{width:calc(100vw - 24px);height:calc(100dvh - 24px)}
    .dpmm-library{grid-template-columns:240px 1fr}.dpmm-library-side{padding:16px 12px}.dpmm-library-main{padding:18px}.dpmm-position-body{grid-template-columns:200px 1fr}
}

body.dark .dpmm-modal .dpmm-modal-head,.dark .dpmm-modal .dpmm-modal-head,body.dark .dpmm-library-side,.dark .dpmm-library-side{background:#181818;color:#eee}

/* v1.1.24 mobile category accordion: reduce tree height, keep upload accessible */
.dpmm-mobile-catbar{display:none}
@media(max-width:760px){
    .dpmm-library-side{max-height:none!important;overflow:visible!important;gap:9px!important}
    .dpmm-mobile-catbar{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:42px;border:1px solid #dedede;background:#f7f7f7;color:#111;padding:0 12px;font-weight:900;text-align:left}
    .dpmm-mobile-catbar span{font-size:12px;color:#777;font-weight:800;margin-right:8px;white-space:nowrap}
    .dpmm-mobile-catbar strong{flex:1;min-width:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .dpmm-mobile-catbar em{font-style:normal;font-size:12px;color:#777;margin-left:10px;white-space:nowrap}
    .dpmm-library-side.is-cat-collapsed .dpmm-cat-actions,.dpmm-library-side.is-cat-collapsed .dpmm-cat-tree{display:none!important}
    .dpmm-library-side.is-cat-open .dpmm-cat-actions{display:grid!important}
    .dpmm-library-side.is-cat-open .dpmm-cat-tree{display:block!important;max-height:32dvh!important;min-height:0!important;padding:2px 0 6px 0!important;border-bottom:1px solid #ededed}
    .dpmm-library-side.is-cat-open{max-height:62dvh!important;overflow:auto!important}
    .dpmm-library-side.is-cat-collapsed{max-height:none!important;overflow:visible!important}
    .dpmm-library-main{min-height:0!important}
}
@media(max-width:420px){
    .dpmm-library-side.is-cat-open .dpmm-cat-tree{max-height:28dvh!important}
    .dpmm-mobile-catbar{min-height:40px;padding:0 10px}
}
body.dark .dpmm-mobile-catbar,.dark .dpmm-mobile-catbar{background:#222;color:#eee;border-color:rgba(255,255,255,.16)}
body.dark .dpmm-mobile-catbar span,body.dark .dpmm-mobile-catbar em,.dark .dpmm-mobile-catbar span,.dark .dpmm-mobile-catbar em{color:#aaa}


/* v1.1.24 mobile media accordion + scrollable position editor */
.dpmm-mobile-mediabar{display:none}
@media(max-width:760px){
    .dpmm-mobile-mediabar{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:42px;border:1px solid #dedede;background:#f7f7f7;color:#111;padding:0 12px;font-weight:900;text-align:left;margin:0 0 10px 0}
    .dpmm-mobile-mediabar span{font-size:12px;color:#777;font-weight:800;margin-right:8px;white-space:nowrap}
    .dpmm-mobile-mediabar strong{flex:1;min-width:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .dpmm-mobile-mediabar em{font-style:normal;font-size:12px;color:#777;margin-left:10px;white-space:nowrap}
    .dpmm-library-main.is-media-collapsed 
    .dpmm-library-main.has-position-panel{overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;padding-bottom:18px}
    .dpmm-library-main.has-position-panel 
    .dpmm-position-panel{max-height:52dvh!important;overflow-y:auto!important;overflow-x:hidden!important;-webkit-overflow-scrolling:touch;border:1px solid #d9d9d9!important;background:#fff!important}
    .dpmm-position-head{position:sticky;top:0;z-index:3;background:#fff!important}
    .dpmm-position-body{min-height:min-content!important}
    .dpmm-position-controls input[type=range]{height:34px}
    .dpmm-position-actions{position:sticky;bottom:0;background:#fff;padding-top:6px}
}
@media(max-width:420px){
    .dpmm-position-panel{max-height:50dvh!important}
    .dpmm-library-main.has-position-panel 
    .dpmm-mobile-mediabar{min-height:40px;padding:0 10px}
}
body.dark .dpmm-mobile-mediabar,.dark .dpmm-mobile-mediabar{background:#222;color:#eee;border-color:rgba(255,255,255,.16)}
body.dark .dpmm-mobile-mediabar span,body.dark .dpmm-mobile-mediabar em,.dark .dpmm-mobile-mediabar span,.dark .dpmm-mobile-mediabar em{color:#aaa}
body.dark .dpmm-position-head,.dark .dpmm-position-head,body.dark .dpmm-position-actions,.dark .dpmm-position-actions{background:#181818!important}


/* v1.1.26 mobile modal close fix: keep close button above sticky header/panels */
.dpmm-modal .dpmm-modal-close{z-index:60!important;pointer-events:auto!important;display:flex!important;align-items:center!important;justify-content:center!important}
.dpmm-modal .dpmm-modal-head{padding-right:66px!important}
@media(max-width:760px){
    .dpmm-modal .dpmm-modal-close{position:absolute!important;top:9px!important;right:14px!important;width:40px!important;height:40px!important;font-size:30px!important;line-height:36px!important;background:#f1f1f1!important;color:#111!important;border-radius:999px!important}
    .dpmm-position-head button[data-dpmm-position-close]{z-index:12!important;pointer-events:auto!important}
}
body.dark .dpmm-modal .dpmm-modal-close,.dark .dpmm-modal .dpmm-modal-close{background:#2a2a2a!important;color:#fff!important}

/* v1.1.27 folder media count */
.dpmm-cat-node{justify-content:flex-start;}
.dpmm-cat-name{flex:1 1 auto;min-width:0;}
.dpmm-cat-count{margin-left:auto!important;position:static!important;width:auto!important;height:auto!important;background:transparent!important;color:#888;font-size:12px;font-weight:800;line-height:1;padding-left:8px;}
.dpmm-tree-row.is-empty:not(.is-system) .dpmm-cat-node{opacity:.56;}
.dpmm-tree-row.is-empty .dpmm-cat-count{color:#aaa;}
body.dark .dpmm-cat-count,.dark .dpmm-cat-count{color:#aaa;}
@media(max-width:760px){.dpmm-cat-count{font-size:13px;min-width:22px;text-align:right}.dpmm-cat-name{max-width:calc(100% - 58px)}}

/* v1.1.30 modal viewport isolation: prevent page-builder/editor wrappers from offsetting the picker */
body > .dpmm-modal[data-dpmm-modal]{
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100vw!important;
    height:100vh!important;
    height:100dvh!important;
    margin:0!important;
    transform:none!important;
    z-index:2147483000!important;
    display:flex;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
}
body > .dpmm-modal[data-dpmm-modal][hidden]{display:none!important;}
body > .dpmm-modal[data-dpmm-modal] .dpmm-modal-mask{position:absolute!important;inset:0!important;}
body > .dpmm-modal[data-dpmm-modal] .dpmm-library-panel{position:relative!important;margin:auto!important;max-height:calc(100dvh - 22px)!important;}

/* v1.1.31 editor insertion button */
.dpmm-select-toolbar button.is-primary{background:#0ea5e9;color:#fff;border-color:#0ea5e9}
.dpmm-select-toolbar button.is-primary:disabled{opacity:.42;cursor:not-allowed}
body.dark .dpmm-select-toolbar button.is-primary,.dark .dpmm-select-toolbar button.is-primary{background:#0284c7;color:#fff;border-color:#0284c7}

/* v1.1.39 mobile accordion slider: category / upload / preview can collapse independently */
.dpmm-mobile-uploadbar{display:none}
.dpmm-upload-panel{display:flex;flex-direction:column;gap:8px}
@media(max-width:760px){
    .dpmm-accbar,.dpmm-mobile-catbar,.dpmm-mobile-uploadbar,.dpmm-mobile-mediabar{
        display:flex!important;align-items:center;justify-content:space-between;width:100%;min-height:42px;
        border:1px solid #dedede;background:#f7f7f7;color:#111;padding:0 12px;font-weight:900;text-align:left;
        border-radius:0;margin:0 0 8px 0;box-sizing:border-box;
    }
    .dpmm-accbar span,.dpmm-mobile-catbar span,.dpmm-mobile-uploadbar span,.dpmm-mobile-mediabar span{font-size:12px;color:#777;font-weight:800;margin-right:8px;white-space:nowrap}
    .dpmm-accbar strong,.dpmm-mobile-catbar strong,.dpmm-mobile-uploadbar strong,.dpmm-mobile-mediabar strong{flex:1;min-width:0;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:inherit}
    .dpmm-accbar em,.dpmm-mobile-catbar em,.dpmm-mobile-uploadbar em,.dpmm-mobile-mediabar em{font-style:normal;font-size:12px;color:#777;margin-left:10px;white-space:nowrap}

    .dpmm-library-side{min-height:0!important;max-height:none!important;padding:10px 14px!important;overflow:visible!important;gap:0!important}
    .dpmm-library-side.is-cat-collapsed .dpmm-cat-panel{display:none!important}
    .dpmm-library-side.is-cat-open .dpmm-cat-panel{display:block!important;max-height:32dvh!important;overflow:auto!important;-webkit-overflow-scrolling:touch;border-bottom:1px solid #ededed;margin-bottom:8px;padding-bottom:6px}
    .dpmm-library-side.is-cat-open .dpmm-cat-actions{display:grid!important;margin-bottom:6px}
    .dpmm-library-side.is-cat-open .dpmm-cat-tree{display:block!important;max-height:none!important;min-height:0!important;border-bottom:0!important;padding-bottom:0!important}

    .dpmm-library-side.is-upload-collapsed .dpmm-upload-panel{display:none!important}
    .dpmm-library-side.is-upload-open .dpmm-upload-panel{display:flex!important;margin-bottom:8px}
    .dpmm-library-side.is-upload-open .dpmm-modal-file span,.dpmm-library-side.is-upload-open .dpmm-btn{width:100%;min-height:44px;border-radius:8px}
    .dpmm-library-side .dpmm-message{margin-top:6px!important}

    .dpmm-library-main{padding:12px 14px 16px!important;min-height:0!important;overflow:hidden!important}
    .dpmm-library-toolbar{margin-bottom:8px!important}
    .dpmm-library-main.is-media-collapsed 
}
@media(max-width:420px){
    .dpmm-library-side.is-cat-open .dpmm-cat-panel{max-height:28dvh!important}
}
body.dark .dpmm-accbar, .dark .dpmm-accbar,
body.dark .dpmm-mobile-uploadbar, .dark .dpmm-mobile-uploadbar{background:#222;color:#eee;border-color:rgba(255,255,255,.16)}
body.dark .dpmm-accbar span, body.dark .dpmm-accbar em, .dark .dpmm-accbar span, .dark .dpmm-accbar em{color:#aaa}

/* v1.1.40 grid pagination UI: remove mobile slider, keep vertical grid with pages */
.dpmm-pager{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;padding:10px 0 2px;margin-top:8px;border-top:1px solid rgba(128,128,128,.18)}
.dpmm-pager:empty{display:none}
.dpmm-pager button{min-width:34px;height:32px;border:1px solid rgba(0,0,0,.18);background:#fff;color:#111;font-size:12px;font-weight:800;cursor:pointer;border-radius:6px;padding:0 10px}
.dpmm-pager button.is-active{background:#111;color:#fff;border-color:#111}
.dpmm-pager button:disabled{opacity:.42;cursor:not-allowed}
.dpmm-pager span{font-size:12px;color:#777;padding:0 2px}
body.dark .dpmm-pager,.dark .dpmm-pager{border-color:rgba(255,255,255,.18)}
body.dark .dpmm-pager button,.dark .dpmm-pager button{background:#222;color:#eee;border-color:rgba(255,255,255,.22)}
body.dark .dpmm-pager button.is-active,.dark .dpmm-pager button.is-active{background:#eee;color:#111;border-color:#eee}
body.dark .dpmm-pager,.dark .dpmm-pager{background:#181818}

/* v1.1.41 drag to folder */
.dpmm-item[data-dpmm-draggable]{cursor:grab;user-select:none}
.dpmm-item[data-dpmm-draggable]:active{cursor:grabbing}
.dpmm-item.is-dragging{opacity:.48;outline:2px dashed #0ea5e9;outline-offset:-3px}
.dpmm-item.is-moving{opacity:.58;pointer-events:none}
.dpmm-cat-node.is-drop-target,
.dpmm-tree-row.is-drop-target .dpmm-cat-node{background:#e6f6ff!important;color:#045f7f!important;box-shadow:inset 0 0 0 2px #0ea5e9}
.dpmm-cat-node[data-dpmm-category="-1"]{cursor:pointer}
@media(max-width:760px){.dpmm-item[data-dpmm-draggable]{cursor:pointer}.dpmm-item.is-dragging{opacity:1;outline:0}}
body.dark .dpmm-cat-node.is-drop-target,
.dark .dpmm-cat-node.is-drop-target,
body.dark .dpmm-tree-row.is-drop-target .dpmm-cat-node,
.dark .dpmm-tree-row.is-drop-target .dpmm-cat-node{background:#083344!important;color:#e0f7ff!important;box-shadow:inset 0 0 0 2px #38bdf8}

/* v1.1.42 single / multiple picker state */
.dpmm-modal.is-single-select .dpmm-select-toolbar [data-dpmm-selected-count]::after,
.dpmm.is-single-select .dpmm-select-toolbar [data-dpmm-selected-count]::after{content:""}
.dpmm-modal.is-single-select .dpmm-select-toolbar [data-dpmm-insert-selected]::before,
.dpmm.is-single-select .dpmm-select-toolbar [data-dpmm-insert-selected]::before{content:"單選："}
.dpmm-modal.is-single-select .dpmm-item.is-selected,
.dpmm.is-single-select .dpmm-item.is-selected{border-color:#2f88b3!important}

/* v1.1.54 media grid canonical layout
 * Single source of truth: the middle media list scrolls; cards stay square.
 */
.dpmm-library-main{
    min-width:0;
    min-height:0;
    overflow:hidden;
}
.dpmm-library-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(128px,1fr));
    grid-auto-rows:max-content;
    gap:14px;
    align-items:start;
    align-content:start;
    min-width:0;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    padding:0 6px 24px 0;
}
.dpmm-library-grid .dpmm-item{
    min-width:0;
    height:max-content;
    align-self:start;
    overflow:hidden;
    border-radius:0;
}
.dpmm-library-grid .dpmm-thumb{
    width:100%;
    height:auto;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#d8d8d8;
}
.dpmm-library-grid .dpmm-thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}
@media(max-width:760px){
    .dpmm-library-grid{
        width:100%;
        grid-template-columns:repeat(3,minmax(0,1fr));
        gap:8px;
        padding:0 0 12px;
    }
    .dpmm-library-grid .dpmm-item{
        width:100%;
        max-width:none;
    }
}
@media(max-width:360px){
    .dpmm-library-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
