/* Drop 904: drop zones and upload progress — portal, staff panel and public pages (theme variables of each). */
.up-zone{--up-bd:var(--border-2,var(--a-border,#D9DEE7));--up-bg:var(--bg-2,var(--a-bg-2,#F7F8FA));--up-fg:var(--fg,var(--a-fg,#0E1B2E));--up-mu:var(--fg-muted,var(--a-fg-3,#5B6780));--up-ac:var(--accent,#C8961E);
  position:relative;display:grid;gap:.55rem;padding:.9rem 1rem;border:1.5px dashed var(--up-bd);border-radius:14px;background:var(--up-bg);transition:border-color .15s,background .15s,box-shadow .15s;min-width:0}
.up-zone:hover,.up-zone:focus-within{border-color:color-mix(in srgb,var(--up-ac) 55%,var(--up-bd))}
.up-zone.is-over{border-color:var(--up-ac);background:color-mix(in srgb,var(--up-ac) 8%,var(--up-bg));box-shadow:0 0 0 4px color-mix(in srgb,var(--up-ac) 14%,transparent)}
.up-native{position:absolute !important;width:1px !important;height:1px !important;opacity:0 !important;pointer-events:none;inset-inline-start:0;top:0}
.up-face{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;color:var(--up-mu);font-size:.88rem}.up-face svg{flex:none;color:var(--up-ac)}
.up-line{color:var(--up-fg)}.up-pick{background:none;border:0;padding:0;font:inherit;font-weight:700;color:var(--accent-text,var(--up-ac));text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.up-hint{flex-basis:100%;color:var(--up-mu);font-size:.74rem;letter-spacing:.02em}
.up-list{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}.up-list:empty{display:none}
.up-chip{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.45rem .55rem;border-radius:10px;background:var(--bg-card,var(--a-bg,#fff));border:1px solid var(--up-bd);font-size:.84rem}
.up-chip.is-bad{border-color:#B42318;background:color-mix(in srgb,#B42318 6%,var(--bg-card,#fff))}
.up-ext{font-size:.64rem;font-weight:800;letter-spacing:.04em;padding:.22rem .4rem;border-radius:6px;background:#0F294C;color:#fff}[data-theme="dark"] .up-ext{background:#E3B45A;color:#0B1220}
.up-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--up-fg);font-weight:600}.up-size{color:var(--up-mu);font-variant-numeric:tabular-nums;font-size:.78rem}
.up-x{width:26px;height:26px;border-radius:8px;border:0;background:transparent;color:var(--up-mu);font-size:1.15rem;line-height:1;cursor:pointer}.up-x:hover{background:var(--up-bg);color:#B42318}
form.is-uploading .up-zone{opacity:.65;pointer-events:none}
.up-progress{display:grid;gap:.4rem;margin-top:.6rem;padding:.75rem .9rem;border-radius:12px;border:1px solid var(--border-2,var(--a-border,#D9DEE7));background:var(--bg-card,var(--a-bg,#fff));min-width:min(100%,20rem);flex-basis:100%}
.up-top{display:flex;justify-content:space-between;align-items:center;gap:.6rem;font-size:.86rem}.up-pct{font-variant-numeric:tabular-nums;font-weight:800}
.up-track{height:8px;border-radius:999px;background:var(--bg-2,var(--a-bg-2,#EEF1F5));overflow:hidden}
.up-bar{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#0F294C,#C8961E);transition:width .2s ease}
.up-progress.is-processing .up-bar{background-size:200% 100%;background-image:linear-gradient(90deg,#0F294C 0%,#C8961E 50%,#0F294C 100%);animation:up-flow 1.2s linear infinite}
@keyframes up-flow{to{background-position:-200% 0}}
.up-meta{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;font-size:.76rem;color:var(--fg-muted,var(--a-fg-3,#5B6780));font-variant-numeric:tabular-nums}.up-eta{flex:1}
.up-cancel{background:none;border:1px solid var(--border-2,var(--a-border,#D9DEE7));border-radius:8px;padding:.2rem .6rem;font:inherit;font-size:.76rem;cursor:pointer;color:inherit}
.up-progress.is-done .up-bar{background:#15803d}.up-progress.is-error{border-color:#B42318}.up-progress.is-error .up-bar{background:#B42318}.up-progress.is-error .up-title{color:#B42318}
@media (prefers-reduced-motion:reduce){.up-bar{transition:none}.up-progress.is-processing .up-bar{animation:none}}
