/* The picker of holypuzzle.com's /upload and /my-puzzle (templates/holypuzzle/puzzle-fragments.html ::
   upload): the picture box, then the picked picture's preview with Play Puzzle in its place. Loaded
   after the site's puzzle.css, whose color tokens and button styles it uses (and on /my-puzzle before
   my-pictures.css, which styles the Save button's look). Selectors start with .upload so they win
   over that file's generic rules (e.g. button padding). */
.upload { width: min(720px, 100%); display: flex; flex-direction: column; align-items: center; }
.upload[hidden], .upload #upDrop[hidden], .upload #upPreview[hidden] { display: none; }

/* Picture box (click, drop or paste) */
.upload #upDrop {
  width: 100%; min-height: 280px; padding: 32px 20px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  text-align: center;
  border: 2px dashed var(--line); border-radius: 16px;
  background: var(--panel);
  cursor: pointer;
  transition: border-color .15s, background .15s;
}
.upload #upDrop:hover, .upload #upDrop.over { border-color: var(--accent); background: var(--accent-soft); }
.upload #upDrop svg { width: 48px; height: 48px; color: var(--accent); margin-bottom: 4px; }
.upload #upDrop strong { font-size: 17px; color: var(--text); }
.upload #upDrop span { color: var(--muted); font-size: 14px; }
.upload #upFile { display: none; }
.upload #upPaste {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 8px; padding: 8px 20px; border-radius: 10px;
  font-size: 14px; font-weight: 500;
  background: var(--panel); border: 1px solid var(--line); color: var(--text);
  cursor: pointer; transition: background .15s, border-color .15s;
}
.upload #upPaste:hover { background: var(--accent-soft); border-color: var(--accent); }
.upload #upPaste svg { width: 16px; height: 16px; flex-shrink: 0; }

/* The picked picture */
.upload #upPreview {
  width: 100%; padding: 20px;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  background: var(--panel); border: 1px solid var(--line); border-radius: 16px;
}
.upload #upImg { display: block; max-width: 100%; max-height: 60vh; border-radius: 10px; }
.upload #upInfo { margin: 0; color: var(--muted); font-size: 13px; }
.upload .row { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.upload #upPlay, .upload #upTiles { display: inline-flex; align-items: center; gap: 8px; }
.upload #upPlay svg, .upload #upTiles svg { width: 18px; height: 18px; }
.upload #upPlay, .upload #upTiles, .upload #upAnother, .upload #save { padding: 10px 18px; border-radius: 10px; }
