/* Meld upload flow. All styles are scoped to the upload module. */
.up-flow{
  color:var(--ink,#1f1f1f);
  background:var(--surface,#fff);
  font-family:var(--sans,'Suisse Intl',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);
  width:min(58rem,calc(100vw - 3rem));
  max-width:100%;
  max-height:min(78vh,52rem);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.up-scroll{
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  padding:1.5rem 1.75rem 1.75rem;
  scrollbar-gutter:stable;
}
.up-source,.up-queue,.up-details{display:block}
.up-queue,.up-details{margin-block-start:2rem}
.up-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-block-end:.875rem}
.up-section-head h3{font-size:.9375rem;line-height:1.3;font-weight:500;letter-spacing:-.005em}
.up-section-head p{font-size:.8125rem;line-height:1.45;color:var(--ink3,#707070);margin-block-start:.2rem}
.up-add-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:1rem;align-items:stretch}
.up-drop{
  min-height:9rem;
  border:1px dashed var(--ink4,#a1a1a1);
  border-radius:var(--r,8px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.625rem;
  padding:1.25rem;
  background:var(--surface,#fff);
  color:var(--ink2,#525252);
  text-align:center;
  transition-property:background-color,border-color;
  transition-duration:.15s;
  transition-timing-function:var(--ease,cubic-bezier(0,0,.2,1));
}
.up-drop strong{font-size:.9375rem;font-weight:500;color:var(--ink,#1f1f1f)}
.up-drop small{font-size:.8125rem;color:var(--ink3,#707070);margin-inline:.4rem}
.up-drop-icon{display:grid;place-items:center;width:2rem;height:2rem;color:var(--ink2,#525252)}
.up-drop-icon svg{width:1.375rem;height:1.375rem}
.up-drop-active{background:var(--fill,rgba(20,20,20,.06));border-color:var(--ink,#1f1f1f)}
.up-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.up-link-block{min-width:0;border-radius:var(--r,8px);background:var(--fill,rgba(20,20,20,.06));padding:1rem;display:flex;flex-direction:column;justify-content:center}
.up-link-block>label,.up-field>span{display:block;font-size:.75rem;line-height:1.35;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--ink3,#707070);margin-block-end:.4rem}
.up-link-row{height:2.75rem;display:flex;align-items:center;gap:.5rem;background:var(--surface,#fff);box-shadow:inset 0 0 0 1px var(--line,rgba(20,20,20,.1));border-radius:var(--r,8px);padding-inline-start:.75rem}
.up-link-row:focus-within{box-shadow:inset 0 0 0 1px var(--ink,#1f1f1f)}
.up-link-icon{display:grid;place-items:center;color:var(--ink3,#707070);flex:0 0 auto}
.up-link-row input{min-width:0;flex:1;height:100%;border:0;background:transparent;color:var(--ink,#1f1f1f);font:inherit;font-size:.9375rem;outline:none}
.up-link-row input::placeholder{color:var(--ink4,#a1a1a1)}
.up-field-help{font-size:.75rem;line-height:1.4;color:var(--ink3,#707070);margin-block-start:.55rem}
.up-inline-error,.up-error-copy{color:var(--ink,#1f1f1f)!important;font-weight:500}
.up-inline-error{font-size:.8125rem;line-height:1.4;margin-block-start:.45rem}
.up-queue-head{align-items:center}
.up-group-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}
.up-group-actions>span{font-size:.75rem;color:var(--ink3,#707070);margin-inline-end:.25rem}
.up-list{display:flex;flex-direction:column;gap:.375rem}
.up-item{
  min-height:4.75rem;
  display:grid;
  grid-template-columns:2.75rem 2.5rem 3.5rem minmax(0,1fr) auto;
  align-items:center;
  gap:.625rem;
  padding:.5rem;
  background:var(--surface,#fff);
  box-shadow:inset 0 0 0 1px var(--line,rgba(20,20,20,.1));
  border-radius:var(--r,8px);
  transition-property:opacity,box-shadow,background-color;
  transition-duration:.15s;
  transition-timing-function:var(--ease,cubic-bezier(0,0,.2,1));
}
.up-item:hover{box-shadow:inset 0 0 0 1px var(--ink4,#a1a1a1)}
.up-item-over{box-shadow:inset 0 0 0 2px var(--ink,#1f1f1f);background:var(--fill,rgba(20,20,20,.06))}
.up-item-dragging{opacity:.48}
.up-item-error{box-shadow:inset 0 0 0 2px var(--ink,#1f1f1f)}
.up-select{width:2.75rem;height:2.75rem;display:grid;place-items:center;cursor:pointer}
.up-select input{appearance:none;width:1.125rem;height:1.125rem;border:1px solid var(--ink4,#a1a1a1);border-radius:4px;background:var(--surface,#fff);display:grid;place-items:center;cursor:pointer}
.up-select input::after{content:'';width:.55rem;height:.3rem;border-inline-start:1.5px solid #fff;border-block-end:1.5px solid #fff;transform:rotate(-45deg) scale(0);transition:transform .12s var(--ease,cubic-bezier(0,0,.2,1));margin-block-start:-.08rem}
.up-select input:checked{background:var(--ink,#1f1f1f);border-color:var(--ink,#1f1f1f)}
.up-select input:checked::after{transform:rotate(-45deg) scale(1)}
.up-grip,.up-icon-button{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:0;border-radius:var(--r,8px);background:transparent;color:var(--ink3,#707070);cursor:pointer;flex:0 0 auto}
.up-grip{cursor:grab;touch-action:none}
.up-grip:active{cursor:grabbing}
.up-grip:hover,.up-icon-button:hover{background:var(--fill,rgba(20,20,20,.06));color:var(--ink,#1f1f1f)}
.up-grip svg{stroke-width:2.4;stroke-linecap:round}
.up-preview{width:3.5rem;height:3.5rem;display:grid;place-items:center;position:relative;overflow:hidden;border-radius:calc(var(--r,8px) - 2px);background:var(--surface2,#eaebef);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.up-preview img,.up-preview video{width:100%;height:100%;object-fit:cover;display:block}
.up-type-icon{display:grid;place-items:center;color:var(--ink2,#525252)}
.up-item-copy{min-width:0}
.up-item-title{display:flex;align-items:center;gap:.5rem;min-width:0}
.up-item-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9375rem;font-weight:500}
.up-item-copy p{font-size:.75rem;line-height:1.4;color:var(--ink3,#707070);margin-block-start:.15rem;overflow-wrap:anywhere}
.up-set-badge{flex:0 0 auto;font-size:.6875rem;line-height:1.65;padding-inline:.375rem;border-radius:4px;background:var(--ink,#1f1f1f);color:#fff;font-weight:500}
.up-item-actions{display:flex;align-items:center;gap:.125rem}
.up-spinner,.up-button-spinner{border:1.5px solid rgba(31,31,31,.2);border-block-start-color:var(--ink,#1f1f1f);border-radius:50%;animation:up-spin .75s linear infinite}
.up-spinner{position:absolute;width:1.25rem;height:1.25rem;background:rgba(255,255,255,.82)}
.up-button-spinner{width:.875rem;height:.875rem;border-color:rgba(255,255,255,.35);border-block-start-color:#fff}
.up-detail-list{display:flex;flex-direction:column;gap:.5rem}
.up-detail{background:var(--surface,#fff);box-shadow:inset 0 0 0 1px var(--line,rgba(20,20,20,.1));border-radius:var(--r,8px);overflow:hidden}
.up-detail summary{min-height:3.75rem;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:1rem;padding:.65rem 1rem;cursor:pointer;list-style:none}
.up-detail summary::-webkit-details-marker{display:none}
.up-detail summary::after{content:'+';grid-column:3;width:2rem;height:2rem;display:grid;place-items:center;color:var(--ink3,#707070);font-size:1.125rem;font-weight:400}
.up-detail[open] summary::after{content:'−'}
.up-detail summary:hover{background:var(--fill,rgba(20,20,20,.06))}
.up-detail summary>span:first-child{display:flex;flex-direction:column;min-width:0}
.up-detail summary strong{font-size:.875rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-detail summary small{font-size:.75rem;color:var(--ink3,#707070);margin-block-start:.05rem}
.up-summary-title{font-size:.8125rem;color:var(--ink2,#525252);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.up-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;padding:.75rem 1rem 1rem}
.up-field{min-width:0}
.up-field-wide{grid-column:1/-1}
.up-field>span em{font-style:normal;font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink4,#a1a1a1);margin-inline-start:.3rem}
.up-field input,.up-field textarea,.up-field select{
  width:100%;
  min-height:2.625rem;
  border:0;
  border-radius:var(--r,8px);
  background:var(--fill,rgba(20,20,20,.06));
  box-shadow:inset 0 0 0 1px transparent;
  color:var(--ink,#1f1f1f);
  font:inherit;
  font-size:.9375rem;
  line-height:1.4;
  padding:.65rem .75rem;
  outline:none;
  resize:vertical;
}
.up-field textarea{min-height:4.25rem}
.up-field select{appearance:auto;padding-inline-end:.5rem}
.up-field input:hover,.up-field textarea:hover,.up-field select:hover{background:var(--fill2,rgba(20,20,20,.1))}
.up-field input:focus,.up-field textarea:focus,.up-field select:focus{background:var(--surface,#fff);box-shadow:inset 0 0 0 1px var(--ink,#1f1f1f)}
.up-field input[aria-invalid=true]{box-shadow:inset 0 0 0 2px var(--ink,#1f1f1f);background:var(--surface,#fff)}
.up-field>small{display:block;font-size:.75rem;color:var(--ink3,#707070);margin-block-start:.35rem}
.up-field>.up-title-error{color:var(--ink,#1f1f1f);font-weight:500}
.up-footer{
  flex:0 0 auto;
  min-height:5.5rem;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1.5rem;
  padding:1rem 1.75rem calc(1rem + env(safe-area-inset-bottom));
  background:var(--surface,#fff);
  box-shadow:0 -1px 0 var(--line,rgba(20,20,20,.1));
}
.up-destination{display:flex;align-items:flex-end;gap:.75rem;min-width:0;flex-wrap:wrap}
.up-destination .up-field{width:12rem}
.up-destination .up-audience{width:8.75rem}
.up-destination-note{align-self:center;font-size:.75rem;color:var(--ink3,#707070);white-space:nowrap}
.up-new-collection-button{align-self:flex-end}
.up-new-collection{flex:1 0 100%;display:grid;grid-template-columns:minmax(10rem,1fr) 8.75rem auto;align-items:end;gap:.75rem;padding:.875rem;background:var(--fill,rgba(20,20,20,.06));border-radius:var(--r,8px)}
.up-new-collection>strong{grid-column:1/-1;font-size:.875rem;font-weight:500}
.up-new-collection .up-field{width:auto}
.up-new-collection-actions{display:flex;align-items:center;justify-content:flex-end;gap:.375rem}
.up-new-collection>.up-inline-error{grid-column:1/-1;margin:0}
.up-footer-actions{display:flex;align-items:center;gap:.75rem;margin-inline-start:auto}
.up-button{
  min-height:2.5rem;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  border:0;
  border-radius:var(--r,8px);
  padding:.55rem .875rem;
  font:inherit;
  font-size:.875rem;
  line-height:1;
  font-weight:500;
  white-space:nowrap;
  cursor:pointer;
  transition-property:background-color,color,opacity,transform,box-shadow;
  transition-duration:.15s;
  transition-timing-function:var(--ease,cubic-bezier(0,0,.2,1));
}
.up-button-secondary{background:var(--surface,#fff);color:var(--ink,#1f1f1f);box-shadow:inset 0 0 0 1px var(--line,rgba(20,20,20,.1))}
.up-button-secondary:hover{background:var(--fill,rgba(20,20,20,.06));box-shadow:inset 0 0 0 1px var(--ink4,#a1a1a1)}
.up-button-dark{background:var(--ink,#1f1f1f);color:#fff}
.up-button-dark:hover{background:#000}
.up-button-text{background:transparent;color:var(--ink2,#525252);padding-inline:.65rem}
.up-button-text:hover{background:var(--fill,rgba(20,20,20,.06));color:var(--ink,#1f1f1f)}
.up-button:active:not(:disabled),.up-icon-button:active:not(:disabled),.up-grip:active:not(:disabled){transform:scale(.96)}
.up-button:disabled,.up-icon-button:disabled,.up-grip:disabled{opacity:.35;cursor:default;transform:none}
.up-button:focus-visible,.up-icon-button:focus-visible,.up-grip:focus-visible,.up-select input:focus-visible,.up-detail summary:focus-visible,.up-field input:focus-visible,.up-field textarea:focus-visible,.up-field select:focus-visible,.up-link-row input:focus-visible{outline:2px solid;outline-offset:2px}
.up-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.up-image-description{display:block;margin-top:.5rem;font-size:.75rem;line-height:1.4;color:var(--ink2,#525252)}
.up-image-description span{display:block;margin-bottom:.25rem}
.up-image-description em{font-style:normal;color:var(--ink3,#707070)}
.up-image-description textarea{display:block;width:100%;min-height:3.25rem;resize:vertical;border:1px solid var(--line,rgba(20,20,20,.1));border-radius:var(--r,8px);background:var(--surface,#fff);color:var(--ink,#1f1f1f);font:inherit;font-size:.8125rem;padding:.5rem}
.up-image-description textarea:focus-visible{outline:2px solid var(--blue,#335ea8);outline-offset:2px}
.up-live{margin:0}
@keyframes up-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){
  .up-spinner,.up-button-spinner{animation-duration:1.5s}
  .up-button,.up-icon-button,.up-grip,.up-item,.up-drop,.up-select input::after{transition-duration:0s}
}
@media (max-width:48rem){
  .up-flow{width:min(100%,calc(100vw - 1rem));max-height:84vh}
  .up-scroll{padding:1.25rem 1rem 1.5rem}
  .up-add-grid{grid-template-columns:1fr}
  .up-section-head{align-items:flex-start;flex-direction:column}
  .up-queue-head{gap:.75rem}
  .up-group-actions{justify-content:flex-start}
  .up-item{grid-template-columns:2.75rem 3.25rem minmax(0,1fr) auto;gap:.5rem}
  .up-grip{display:none}
  .up-preview{width:3.25rem;height:3.25rem}
  .up-item-actions{display:grid;grid-template-columns:repeat(2,2.5rem)}
  .up-detail summary{grid-template-columns:minmax(0,1fr) auto}
  .up-summary-title{display:none}
  .up-detail summary::after{grid-column:2;grid-row:1}
  .up-fields{grid-template-columns:1fr}
  .up-field-wide{grid-column:auto}
  .up-footer{align-items:stretch;flex-direction:column;padding-inline:1rem;gap:.875rem}
  .up-destination{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.75fr);align-items:end}
  .up-destination .up-field,.up-destination .up-audience{width:auto}
  .up-destination-note{grid-column:1/-1}
  .up-new-collection-button{align-self:end}
  .up-new-collection{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(8rem,.75fr)}
  .up-new-collection>strong,.up-new-collection-actions,.up-new-collection>.up-inline-error{grid-column:1/-1}
  .up-new-collection-actions{justify-content:flex-end}
  .up-footer-actions{width:100%;justify-content:flex-end}
}
@media (max-width:30rem){
  .up-flow{width:100vw;max-height:88vh}
  .up-link-row{height:auto;min-height:2.75rem;flex-wrap:wrap;padding:.5rem}
  .up-link-row input{height:2.25rem}
  .up-link-row .up-button{width:100%}
  .up-item{grid-template-columns:2.5rem 3rem minmax(0,1fr);padding:.5rem .375rem}
  .up-select{width:2.5rem}
  .up-preview{width:3rem;height:3rem}
  .up-item-actions{grid-column:2/-1;display:flex;justify-content:flex-end}
  .up-destination{grid-template-columns:1fr}
  .up-destination-note{grid-column:auto}
  .up-new-collection{grid-column:auto;grid-template-columns:1fr}
  .up-new-collection>strong,.up-new-collection-actions,.up-new-collection>.up-inline-error{grid-column:auto}
  .up-new-collection-actions{justify-content:stretch}
  .up-new-collection-actions .up-button{flex:1}
  .up-footer-actions .up-button-dark{flex:1}
}
.up-button{border-radius:var(--pill);box-shadow:none;border:0}.up-button-secondary{background:var(--fill);box-shadow:none}.up-button-secondary:hover{background:var(--fill2);box-shadow:none}.up-button-dark{background:var(--blue);color:#fff}.up-button-dark:hover{background:var(--blue-deep)}

/* Structural wrapper keeps the desktop row intact; mobile gets a full-width field. */
.up-link-field{min-width:0;flex:1;display:flex;align-items:center;gap:.5rem;height:100%}.up-link-field input{width:100%}.up-file-formats{display:none}
