.nbu-wrap { max-width: 640px; margin: 1.5em 0; }
.nbu-form .nbu-field { margin: 0 0 1.1em; }
.nbu-form label { display: block; font-weight: 600; margin-bottom: .35em; }
.nbu-form input[type="text"],
.nbu-form textarea { width: 100%; box-sizing: border-box; padding: .55em .7em; border: 1px solid #c8c8c8; border-radius: 4px; font: inherit; }
.nbu-form input[type="file"] { display: block; max-width: 100%; }
.nbu-form .nbu-help { display: block; margin-top: .35em; opacity: .75; font-size: .9em; }
.nbu-form .nbu-req { color: #c0392b; }
.nbu-form .nbu-consent label { font-weight: normal; display: flex; gap: .6em; align-items: flex-start; }
.nbu-form .nbu-consent input { margin-top: .25em; flex: 0 0 auto; }
.nbu-form .nbu-submit { cursor: pointer; }
.nbu-form .nbu-submit[disabled] { opacity: .6; cursor: progress; }
.nbu-form .nbu-status { margin-left: .8em; font-size: .95em; }
.nbu-preview { display: flex; flex-wrap: wrap; gap: 8px; margin-top: .6em; }
.nbu-preview .nbu-thumb { position: relative; }
.nbu-preview img { display: block; width: 84px; height: 84px; object-fit: cover; border-radius: 4px; }
.nbu-preview .nbu-remove { position: absolute; top: -6px; right: -6px; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: #c0392b; color: #fff; font-size: 16px; line-height: 24px; text-align: center; cursor: pointer; }
.nbu-preview .nbu-count { flex-basis: 100%; font-size: .9em; opacity: .8; }
.nbu-progress { position: relative; height: 12px; margin: .4em 0 .3em; border-radius: 6px; background: rgba(0,0,0,.1); overflow: hidden; }
.nbu-progress[hidden] { display: none; }
.nbu-progress-fill { height: 100%; width: 0; border-radius: 6px; background: #2e9e4f; transition: width .2s ease; }
.nbu-progress.is-indeterminate .nbu-progress-fill { background: repeating-linear-gradient(45deg, #2e9e4f 0 12px, #46b768 12px 24px); background-size: 34px 34px; animation: nbu-stripes 1s linear infinite; }
.nbu-progress-label { font-size: .9em; min-height: 1.2em; }
@keyframes nbu-stripes { from { background-position: 0 0; } to { background-position: 34px 0; } }
@media (prefers-reduced-motion: reduce) { .nbu-progress-fill { transition: none; } .nbu-progress.is-indeterminate .nbu-progress-fill { animation: none; } }
.nbu-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.nbu-notice { padding: .8em 1em; border-radius: 4px; margin: 0 0 1.2em; }
.nbu-notice ul { margin: 0; padding-left: 1.2em; }
.nbu-success { background: #e8f6ec; border-left: 4px solid #2e9e4f; }
.nbu-error { background: #fdecea; border-left: 4px solid #c0392b; }
.nbu-admin-hint { padding: .6em .8em; background: #fff8e5; border-left: 4px solid #dba617; }
