.mlp-toolbar { margin-bottom: 12px; }
.mlp-toolbar-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.mlp-h2 { margin:0; font-size:20px; }
.mlp-count { color:#666; margin-bottom:12px; }

.mlp-grid { display:grid; grid-template-columns: repeat( auto-fill, minmax(260px, 1fr) ); gap:14px; }
.mlp-card { border:1px solid #eee; border-radius:12px; background:#fff; overflow:hidden; display:flex; flex-direction:column; }
.mlp-imgwrap { aspect-ratio: 4/3; background:#fafafa; display:flex; align-items:center; justify-content:center; }
.mlp-img { width:100%; height:100%; object-fit:cover; }
.mlp-body { padding:12px; }
.mlp-title { font-weight:600; margin-bottom:6px; }
.mlp-desc { color:#555; font-size:14px; }
.mlp-foot { padding:10px 12px; border-top:1px solid #eee; display:flex; gap:8px; }

.mlp-btn { display:inline-flex; align-items:center; gap:6px; padding:8px 10px; border-radius:8px; border:1px solid #ddd; background:#fff; cursor:pointer; }
.mlp-btn:hover { background:#f7f7f7; }
.mlp-btn-ghost { background:#fff; }
.mlp-btn-primary { background:#111; color:#fff; border-color:#111; }

.mlp-modal[hidden]{ display:none; }
.mlp-modal { position: fixed; inset:0; background: rgba(0,0,0,.45); z-index: 9999; display:flex; align-items:center; justify-content:center; padding: 24px; }
.mlp-modal__dialog{ background:#fff; max-width: 720px; width:100%; border-radius:16px; box-shadow: 0 10px 40px rgba(0,0,0,.2); display:flex; flex-direction:column; }
.mlp-modal__head{ padding:16px 20px; border-bottom:1px solid #eee; display:flex; align-items:center; justify-content:space-between; }
.mlp-modal__title{ margin:0; font-size:18px; }
.mlp-modal__close{ background:transparent; border:0; font-size:24px; line-height:1; cursor:pointer; }
.mlp-modal__body{ padding: 16px 20px; max-height: 70vh; overflow:auto; }
.mlp-modal__foot{ padding:16px 20px; border-top:1px solid #eee; display:flex; justify-content:flex-end; gap:8px; }

.mlp-field{ margin-bottom:12px; }
.mlp-field label{ display:block; font-weight:600; margin-bottom:6px; }
.mlp-input, .mlp-textarea{ width:100%; padding:10px 12px; border:1px solid #ddd; border-radius:8px; }
.mlp-textarea{ min-height:120px; }

.mlp-upload{ display:flex; align-items:center; gap:10px; }
.mlp-upload__preview{ width:72px; height:72px; object-fit:cover; border-radius:8px; border:1px solid #eee; }
