.img-dropzone{border:2px dashed var(--card-border);border-radius:var(--r-md);cursor:pointer;align-items:center;gap:14px;padding:22px 18px;transition:border-color .15s,background .15s;display:flex}.img-dropzone:hover,.img-dropzone.drag-over{border-color:var(--accent);background:#38bdf80f}.img-dropzone .dz-text{color:var(--fg-muted);font-size:.85rem;line-height:1.5}.img-dropzone input[type=file]{opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.mx-warn{border-radius:var(--r-md);color:#fda4af;background:#f43f5e1a;border:1px solid #f43f5e59;margin:14px 0 0;padding:10px 14px;font-size:.88rem;font-weight:700}.mx-warn.ok{color:#6ee7b7;background:#34d39914;border-color:#34d39959}.mx-list{flex-direction:column;gap:10px;margin:14px 0 0;padding:0;list-style:none;display:flex}.mx-item{border:1px solid var(--card-border);border-radius:var(--r-md);background:#ffffff08;padding:12px;transition:border-color .3s}.mx-item.has-gps{border-color:#f43f5e66}.mx-item.is-clean{border-color:#34d39973}.mx-top{align-items:center;gap:12px;display:flex}.mx-thumb{background:#ffffff0f;border-radius:10px;flex-shrink:0;place-items:center;width:56px;height:56px;font-size:1.4rem;display:grid;position:relative;overflow:hidden}.mx-thumb img{object-fit:cover;width:100%;height:100%}.mx-meta{flex:1;min-width:0}.mx-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;font-weight:700;overflow:hidden}.mx-sub{color:var(--fg-subtle);font-size:.75rem}.mx-remove{border:1px solid var(--card-border);color:var(--fg-muted);cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;width:30px;height:30px;font-size:.9rem}.mx-remove:hover{color:var(--fg);border-color:var(--accent)}.mx-badges{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.mx-badge{border:1px solid var(--card-border);max-width:100%;color:var(--fg-muted);overflow-wrap:anywhere;background:#ffffff0f;border-radius:12px;flex-wrap:wrap;align-items:center;gap:4px;padding:4px 9px;font-size:.74rem;font-weight:700;display:inline-flex}.mx-badge.danger{color:#fda4af;background:#f43f5e1f;border-color:#f43f5e66}.mx-badge.warn{color:#fcd34d;background:#f59e0b1a;border-color:#f59e0b59}.mx-badge.ok{color:#6ee7b7;background:#34d3991f;border-color:#34d39973}.mx-badge a{color:inherit;text-underline-offset:2px;text-decoration:underline}.mx-result{background:#34d39912;border-radius:10px;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;display:flex}.mx-result-text{color:#6ee7b7;flex:1;min-width:0;font-size:.8rem;font-weight:700}.mx-result .btn-sm{flex-shrink:0;padding:6px 14px}.mx-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.mx-actions .btn-sm{padding:6px 12px}.mx-more,.mx-edit{border-top:1px dashed var(--card-border);margin-top:10px}.mx-more summary,.mx-edit summary{cursor:pointer;color:var(--fg-muted);padding:10px 0 2px;font-size:.82rem;font-weight:800;list-style:none}.mx-more summary::-webkit-details-marker{display:none}.mx-edit summary::-webkit-details-marker{display:none}.mx-more summary:after,.mx-edit summary:after{content:" ▾"}.mx-more[open] summary:after,.mx-edit[open] summary:after{content:" ▴"}.mx-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:.76rem}.mx-table th,.mx-table td{border-bottom:1px solid var(--card-border);text-align:left;vertical-align:top;padding:5px 6px}.mx-table th{color:var(--fg-subtle);white-space:nowrap;width:40%;font-weight:700}.mx-table td{color:var(--fg);word-break:break-word}.mx-table tr.is-private th,.mx-table tr.is-private td{color:#fda4af}.mx-group{letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;color:var(--accent)!important;padding-top:10px!important}.mx-form{grid-template-columns:1fr 1fr;gap:0 10px;margin-top:10px;display:grid}.mx-form .field{margin-bottom:10px}.mx-form .wide{grid-column:1/-1}.mx-form .field-hint{grid-column:1/-1;margin:0 0 10px}@media (width<=520px){.mx-form{grid-template-columns:1fr}}.mx-toolbar{margin-top:20px}.mx-toolbar-actions{flex-wrap:wrap;gap:10px;margin:6px 0 10px;display:flex}.mx-zip{margin-top:12px}@media (prefers-reduced-motion:no-preference){.mx-badge.out{animation:mx-out .4s var(--ease) both}.mx-badge.ok.pop{animation:mx-pop .55s var(--spring) both}.mx-result.pop{animation:mx-rise .45s var(--spring) both}.mx-badge.danger{animation:2.4s ease-in-out infinite mx-pulse}}@keyframes mx-out{to{opacity:0;transform:translateY(-8px)scale(.8)}}@keyframes mx-pop{0%{opacity:0;transform:scale(.4)rotate(-8deg)}}@keyframes mx-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes mx-pulse{0%,to{opacity:1}50%{opacity:.72}}
