/* 📂 Upload page + Google Drive card (4.85d, 2026-10-17). Mark: "make this
   look a bit less like it is from 2005 and make this upload page a bit more
   user friendly". The page's own tokens throughout; nothing here is a colour
   the rest of the app does not already use. */

/* ---- the Upload page: two numbered steps ---- */
.up-step{display:flex;align-items:center;gap:10px;margin:18px 0 10px;font-size:14.5px;font-weight:700;color:var(--white);letter-spacing:.01em}
.up-step .up-badge{width:22px;height:22px;border-radius:50%;background:var(--accent);color:#0B0E12;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.up-step .up-hint{font-size:13px;font-weight:400;color:var(--mid);margin-left:2px}
.up-step .up-chip{margin-left:auto;font-size:12.5px;font-weight:600;color:var(--mid);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:4px 12px;display:inline-flex;align-items:center;gap:6px;max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.up-step .up-chip.ok{color:var(--green);border-color:rgba(74,222,128,.25)}
.up-step .up-chip b{color:var(--light);font-weight:600}
.up-dest{background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;padding:16px 18px 14px}
.up-dest .up-fields{display:flex;gap:12px;flex-wrap:wrap}
.up-dest .opt-field{flex:1;min-width:200px;margin:0}
.up-dest .opt-field label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);margin-bottom:6px}
.up-dest .opt-field select{padding:10px 12px;font-size:13px;border-radius:10px}
.up-dest .up-note{font-size:12.5px;color:var(--mid);margin-top:10px}
.up-sources{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start}
.up-sources>*{flex:1 1 420px;min-width:0}
.up-sources .upload-zone{display:flex;flex-direction:column;justify-content:center;padding:36px 28px;margin:0}
.up-sources .upload-zone h3{font-size:17px}.up-sources .upload-zone p{font-size:13px}
.up-sources .upload-zone p{max-width:420px;margin:0 auto}

/* ---- the Drive card ---- */
.dr-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}
.dr-head{display:flex;align-items:center;gap:12px}
.dr-logo{width:40px;height:40px;border-radius:11px;background:var(--bg);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.dr-head h3{font-size:17px;font-weight:700;color:var(--white);margin:0;line-height:1.1}
.dr-head .dr-sub{font-size:13px;color:var(--mid);margin-top:3px}
.dr-head .dr-sub code{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--silver);user-select:all}
.dr-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--mid);background:var(--bg);flex-shrink:0;margin-left:auto;font-family:'JetBrains Mono',monospace}
.dr-pill .dot{width:7px;height:7px;border-radius:50%;background:var(--mid)}
.dr-pill.ok{color:var(--green);border-color:rgba(74,222,128,.25)}.dr-pill.ok .dot{background:var(--green);box-shadow:0 0 0 3px rgba(74,222,128,.15)}
.dr-pill.warn{color:var(--yellow);border-color:rgba(250,204,21,.25)}.dr-pill.warn .dot{background:var(--yellow)}
.dr-notice{font-size:12.5px;line-height:1.6;color:var(--silver);background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--yellow);border-radius:10px;padding:10px 14px}
.dr-notice code{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--light)}
.dr-notice a{color:var(--accent);text-decoration:none}

.dr-search{display:flex;gap:8px;align-items:center}
.dr-search .dr-field{flex:1;position:relative;min-width:0}
.dr-search .dr-field svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--mid);pointer-events:none}
.dr-search input{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:11px 12px 11px 40px;color:var(--light);font-size:14.5px;font-family:'Outfit',sans-serif;transition:border-color .15s}
.dr-search input::placeholder{color:var(--mid)}
.dr-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}
.dr-search input:disabled{opacity:.6}
.dr-btn{background:var(--accent);color:#0B0E12;border:none;border-radius:10px;padding:10px 16px;font-size:13px;font-weight:700;font-family:'Outfit',sans-serif;cursor:pointer;white-space:nowrap;transition:filter .15s,opacity .15s}
.dr-btn:hover{filter:brightness(1.08)}.dr-btn:disabled{opacity:.45;cursor:not-allowed;filter:none}
.dr-btn.ghost{background:transparent;color:var(--silver);border:1px solid var(--border)}.dr-btn.ghost:hover{color:var(--light);border-color:var(--silver);filter:none}
.dr-btn.sm{padding:6px 12px;font-size:12px;border-radius:8px}
.dr-help{font-size:13px;color:var(--mid);line-height:1.55}
.dr-empty{font-size:13.5px;color:var(--mid);padding:22px 10px;text-align:center;border:1px dashed var(--border);border-radius:10px;line-height:1.6}
.dr-empty code{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--silver);user-select:all}

.dr-list{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--bg)}
.dr-list.scroll{max-height:340px;overflow:auto}
.dr-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--border);font-size:14px;color:var(--light);text-align:left;background:transparent;border-left:none;border-right:none;border-top:none;width:100%;font-family:'Outfit',sans-serif}
.dr-row:last-child{border-bottom:none}
.dr-row.folder{cursor:pointer}.dr-row.folder:hover{background:rgba(255,255,255,.03)}
.dr-row .dr-ico{width:32px;height:32px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-raised);color:var(--silver);flex-shrink:0}
.dr-row .dr-ico.folder{color:var(--accent);background:var(--accent-subtle)}
.dr-row .dr-ico.walk,.dr-row .dr-ico.video{color:var(--blue);background:rgba(96,165,250,.12)}
.dr-row .dr-ico.photo,.dr-row .dr-ico.ortho,.dr-row .dr-ico.tiff{color:var(--green);background:rgba(74,222,128,.1)}
.dr-row .dr-ico.archive{color:var(--yellow);background:rgba(250,204,21,.1)}
.dr-row .dr-name{font-weight:600;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-row .dr-meta{font-size:12.5px;color:var(--mid);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dr-row .dr-kind{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:'JetBrains Mono',monospace}
.dr-row .dr-size{font-size:13px;color:var(--silver);font-variant-numeric:tabular-nums;min-width:64px;text-align:right}
.dr-row .dr-chev{color:var(--mid);display:inline-flex}
.dr-count{font-size:12.5px;color:var(--mid);display:flex;justify-content:space-between;align-items:center}

.dr-crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:14px}
.dr-crumbs a,.dr-crumbs b{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--border);color:var(--silver);text-decoration:none;font-weight:500}
.dr-crumbs a:hover{color:var(--accent);border-color:var(--accent)}
.dr-crumbs b{color:var(--white);font-weight:700;border-color:rgba(255,255,255,.14)}
.dr-crumbs .sep{color:var(--mid)}
.dr-stats{display:flex;gap:10px;flex-wrap:wrap}
.dr-stat{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px 12px;min-width:92px}
.dr-stat .v{font-size:19px;font-weight:800;color:var(--white);font-variant-numeric:tabular-nums;line-height:1.1}
.dr-stat .k{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mid);margin-top:3px}
.dr-stat.kind .v{font-size:14px}
.dr-stat.warn{border-color:rgba(250,204,21,.3)}.dr-stat.warn .v{color:var(--yellow)}
.dr-go{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}
.dr-go .dr-dest{font-size:13.5px;color:var(--mid)}.dr-go .dr-dest b{color:var(--light)}
.dr-go .dr-dest.need{color:var(--yellow)}

.dr-imports{display:flex;flex-direction:column;gap:8px}
.dr-sec{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--silver);margin-top:4px;display:flex;align-items:center;gap:8px}
.dr-sec .live{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 3px rgba(96,165,250,.18)}
.dr-imp{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:start}
.dr-imp .dr-ico{width:36px;height:36px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-raised);color:var(--accent)}
.dr-imp .dr-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dr-imp .dr-title b{font-size:14.5px;color:var(--white)}
.dr-imp .dr-status{font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;font-family:'JetBrains Mono',monospace;border:1px solid transparent}
.dr-status.queued{color:var(--yellow);background:rgba(250,204,21,.1)}.dr-status.running{color:var(--blue);background:rgba(96,165,250,.12)}.dr-status.done{color:var(--green);background:rgba(74,222,128,.1)}.dr-status.failed{color:var(--red);background:rgba(248,113,113,.12)}.dr-status.cancelled{color:var(--mid);background:rgba(255,255,255,.05)}
.dr-imp .dr-meta{font-size:12.5px;color:var(--mid);margin-top:3px}
.dr-imp .dr-meta a{color:var(--accent);text-decoration:none}
.dr-bar{height:8px;background:var(--bg-raised);border-radius:4px;overflow:hidden;margin:8px 0 6px;border:1px solid var(--border)}
.dr-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),#8ec5ff);border-radius:4px;transition:width .4s}
.dr-imp .dr-line{font-size:13px;color:var(--silver)}
.dr-imp .dr-line.err{color:var(--red)}
.dr-imp .dr-line .tail{color:var(--mid)}
.dr-imp .dr-act{display:flex;gap:6px;align-items:center;justify-self:end}

/* ---- the project page strip ---- */
.dr-strip .dr-sec{margin-bottom:8px}
@media (max-width:720px){.dr-row{grid-template-columns:32px minmax(0,1fr) auto}.dr-row .dr-kind{display:none}.up-step .up-chip{max-width:100%}}

/* ---- the review: what each folder is for, as the drop zone's review says it ---- */
.dr-review{display:flex;flex-direction:column;gap:8px}
.dr-group{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.dr-group.off{opacity:.55}
.dr-group .g-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;min-width:0}
.dr-group .g-head .g-skip{margin-left:auto}
.dr-group .g-name{font-size:14.5px;font-weight:700;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dr-group .g-count{font-size:12.5px;color:var(--mid)}
.dr-group .g-kinds{display:flex;gap:6px;flex-wrap:wrap}
.dr-group .g-kind{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--silver);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:3px 8px;font-family:'JetBrains Mono',monospace}
.dr-group .g-why{font-size:12.5px;color:var(--mid);line-height:1.5}
.dr-group .g-why b{color:var(--silver);font-weight:600}
.dr-group .g-warn{color:var(--yellow)}
.dr-group .g-ctl{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:8px 10px;align-items:end;margin-top:2px}
.dr-group .g-ctl.three{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,.9fr)}
.dr-group .g-ctl label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mid);margin-bottom:4px}
.dr-group .g-ctl .g-hint{grid-column:1 / -1}
.dr-group select{width:100%;background:var(--bg-raised);border:1px solid var(--border);border-radius:9px;padding:9px 10px;color:var(--light);font-size:13.5px;font-family:'Outfit',sans-serif}
.dr-group select:focus{outline:none;border-color:var(--accent)}
.dr-group .g-hint{font-size:12px;color:var(--mid);line-height:1.45}
.dr-group .g-skip{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--mid);cursor:pointer}
.dr-plan-sum{font-size:13px;color:var(--silver)}
.dr-plan-sum b{color:var(--white)}
.dr-imp .dr-plan{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.dr-imp .dr-plan span{font-size:11.5px;color:var(--silver);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:2px 8px}
@media (max-width:760px){.dr-group .g-ctl,.dr-group .g-ctl.three{grid-template-columns:1fr}}
