/* ------------------------------------------------------
   Swift Files - App Styles
   ------------------------------------------------------ */

/* Global fixes */
html { direction: ltr; }
body { text-align: left; }

/* Containers */
.container--narrow { max-width: 880px; margin: 0 auto; }
.container--wide   { max-width: 1280px; margin: 0 auto; }
.container--bleed  { max-width: none;  }

/* Panels & headings */
.panel-heading .label { vertical-align: middle; margin-left: 6px; }

/* Utility spacing */
.mt-5  { margin-top: 5px;  }
.mt-10 { margin-top: 10px; }
.mt-15 { margin-top: 15px; }
.mt-20 { margin-top: 20px; }
.mb-5  { margin-bottom: 5px;  }
.mb-10 { margin-bottom: 10px; }
.mb-15 { margin-bottom: 15px; }
.mb-20 { margin-bottom: 20px; }

/* Mono/clip helpers */
.mono { font-family: Menlo, Consolas, Monaco, "Courier New", monospace; }
.clip { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Tables */
.table-middle > thead > tr > th,
.table-middle > tbody > tr > td { vertical-align: middle !important; }

/* Manage files table */
.table-files .file-name {
  max-width: 560px; /* keeps row compact on wide screens */
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.table-files .cell-actions {
  white-space: nowrap;
  width: 1%;
}

/* Labels row (keeps labels tidy, wraps only when needed) */
.labels-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.labels-row .label { margin: 0; }

/* ---- Upload UI ---- */

.upload-drop {
  border: 2px dashed #b6c1cd;
  background: #fafcfe;
  padding: 28px;
  text-align: center;
  border-radius: 6px;
  transition: background .18s ease, border-color .18s ease;
}
.upload-drop.dragover {
  background: #f0f6ff;
  border-color: #5bc0de;
}
.upload-drop .help {
  color: #667481;
  margin-top: 6px;
}

.upload-list {
  list-style: none;
  margin: 14px 0 0 0;
  padding: 0;
}
.upload-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 0;
  border-top: 1px solid #eee;
}
.upload-item:first-child { border-top: 0; }

.upload-name {
  flex: 1 1 auto;
  min-width: 180px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.upload-size    { width: 120px; text-align: right; color: #667481; }
.upload-status  { width: 140px; }
.upload-progress{ width: 220px; }

.progress { margin-bottom: 0; height: 14px; }
.progress-bar { line-height: 14px; }

/* Buttons row under dropzone */
.upload-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-top: 12px;
}

/* Copy group (My Link page) */
.input-copy input {
  font-family: Menlo, Consolas, Monaco, "Courier New", monospace;
}

/* Admin: two scrolling lists that use more height */
.two-panels .panel-body {
  max-height: 72vh;      /* tall on desktops */
  overflow: auto;
}
@media (max-width: 991px) {
  .two-panels .panel-body { max-height: none; } /* let it grow on mobile */
}

/* Tiny hint text */
.text-hint { color: #7a8794; }

/* Make Bootstrap alerts inside tight areas breathe a bit */
.alert { margin: 10px 0; }

/* Token well / info callouts */
.token-well {
  background: #f7fafc;
  border: 1px solid #e3edf5;
  border-radius: 6px;
  padding: 12px 14px;
}

/* Keep navbar looking standard; brand spacing */
.navbar-brand small { font-size: 12px; color: #9aa0a6; margin-left: 6px; }

/* Prevent overly-wide code/links from blowing layout */
pre, code, .mono {
  word-break: break-word;
  white-space: pre-wrap; /* safer within panels on small screens */
}

