.album-pick-msg{
  margin:12px 16px 0;padding:10px 14px;border-radius:var(--radius-sm);
  font-size:13px;font-weight:600;line-height:1.45;
}
.album-pick-msg.ok{background:#e8f5e9;color:#2e7d32}
.album-pick-msg.err{background:#ffebee;color:#c62828}
.album-pick-msg.hidden{display:none}

.album-pick-field{
  background:var(--white);border-radius:var(--radius);
  padding:16px;margin:0 16px;box-shadow:var(--shadow);
}
.album-pick-field label{
  display:block;font-size:13px;font-weight:700;margin-bottom:8px;color:var(--text);
}
.album-pick-field input{
  width:100%;padding:12px 14px;border-radius:var(--radius-sm);
  border:1.5px solid var(--border);font-size:16px;font-family:inherit;
  background:var(--brand-bg);transition:var(--t);
}
.album-pick-field input:focus{
  outline:none;border-color:var(--brand);background:var(--white);
}

.pick-shell{padding:0 16px 24px}

.pick-round-bar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
  margin:0 0 12px;padding:12px 14px;border-radius:var(--radius-sm);
  background:var(--white);border:1px solid var(--border);box-shadow:var(--shadow);
}
.pick-round-meta{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted)}
.pick-round-meta strong{font-size:14px;color:var(--text)}
.pick-round-actions{display:flex;flex-wrap:wrap;gap:8px}

.pick-mode-tabs{
  display:flex;gap:6px;margin-bottom:10px;padding:4px;
  background:var(--brand-bg2);border-radius:999px;
  flex-wrap:wrap;
}
.pick-mode-tab{
  flex:1;min-width:4.5rem;border:none;border-radius:999px;padding:10px 8px;
  font-size:13px;font-weight:700;font-family:inherit;
  background:transparent;color:var(--brand);cursor:pointer;
  transition:background .15s,color .15s;
}
.pick-mode-tab.active{background:var(--brand);color:#fff;box-shadow:var(--shadow)}
.pick-smart-tab{letter-spacing:0.02em}

.pick-status-hint{margin-top:0}

.album-pick-toolbar{
  display:flex;gap:8px;align-items:center;margin-bottom:10px;
}
.album-pick-toolbar input{
  flex:1;padding:10px 12px;border-radius:var(--radius-sm);
  border:1.5px solid var(--border);font-size:14px;font-family:inherit;
  background:var(--white);
}
.album-pick-toolbar input:focus{outline:none;border-color:var(--brand)}
.album-pick-toolbar .btn-chip{
  flex-shrink:0;padding:10px 14px;border-radius:999px;
  background:var(--brand-bg2);color:var(--brand);
  font-size:13px;font-weight:700;border:none;font-family:inherit;cursor:pointer;
}
.album-pick-toolbar .btn-chip:active{background:var(--brand);color:#fff}

.album-pick-hint{
  font-size:12px;color:var(--muted);margin:0 0 12px;line-height:1.5;
}
.album-pick-hint strong{color:var(--brand)}

.hidden{display:none!important}

/* —— 滑动选片 —— */
.pick-swipe-view{margin-bottom:16px}
.pick-swipe-stage{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;
}
.pick-swipe-stage.is-loading{pointer-events:none;user-select:none}
.pick-swipe-loading{
  position:absolute;inset:0;z-index:30;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;
  background:rgba(255,255,255,.78);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  border-radius:var(--radius);pointer-events:auto;touch-action:none;
  color:var(--brand);font-size:13px;font-weight:700;
}
.pick-swipe-spinner{
  width:42px;height:42px;border-radius:50%;
  border:3.5px solid rgba(0,0,0,.12);border-top-color:var(--brand);
  animation:pick-spin .65s linear infinite;
}
@keyframes pick-spin{to{transform:rotate(360deg)}}
.pick-swipe-card{
  position:relative;width:100%;max-width:220px;aspect-ratio:1;
  border-radius:var(--radius);overflow:hidden;
  background:#111;box-shadow:0 8px 28px rgba(0,0,0,.18);
  touch-action:none;transition:transform .15s ease,border-color .2s;
  border:3px solid transparent;cursor:zoom-in;
}
.pick-swipe-card.selected{border-color:var(--brand)}
.pick-swipe-card.rejected:not(.selected){border-color:#999}
.pick-swipe-card img{width:100%;height:100%;object-fit:cover;background:#1a1a1a;pointer-events:none}
img.is-broken{opacity:0 !important}
.pick-swipe-overlay{
  pointer-events:none;position:absolute;inset:0;opacity:0;transition:opacity .2s;
}
.pick-swipe-overlay.show.ok{background:rgba(46,125,50,.35);opacity:1}
.pick-swipe-overlay.show.no{background:rgba(198,40,40,.28);opacity:1}
.pick-swipe-badge{
  position:absolute;top:10px;right:10px;padding:6px 12px;border-radius:999px;
  font-size:12px;font-weight:800;background:rgba(0,0,0,.55);color:#fff;
}
.pick-swipe-card.selected .pick-swipe-badge{background:var(--brand)}
.pick-swipe-zoom-hint{
  position:absolute;left:10px;bottom:10px;padding:4px 8px;border-radius:999px;
  font-size:11px;font-weight:700;background:rgba(0,0,0,.5);color:#fff;
  pointer-events:none;
}
.pick-swipe-name{
  font-size:12px;color:var(--muted);text-align:center;margin:0;max-width:100%;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px;
}
.pick-swipe-controls{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;max-width:420px;
}
.pick-nav-btn{
  flex:1;min-height:44px;padding:10px 12px;border-radius:var(--radius-sm);
  border:1.5px solid var(--brand);background:var(--white);color:var(--brand);
  font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;
}
.pick-nav-btn:active{background:var(--brand-bg)}
.pick-swipe-index{
  flex:0 0 auto;font-size:14px;font-weight:800;color:var(--text);
  min-width:4.5em;text-align:center;
}
.pick-decide-row{
  display:grid;grid-template-columns:1fr 1fr;gap:12px;
  width:100%;max-width:420px;margin-top:2px;
}
.btn-swipe-decide{
  min-height:56px;border:none;border-radius:var(--radius);cursor:pointer;
  font-size:18px;font-weight:900;letter-spacing:.04em;font-family:inherit;
  box-shadow:0 4px 14px rgba(0,0,0,.12);
}
.btn-swipe-decide:active{transform:scale(.98)}
.btn-swipe-reject{
  background:#f3f3f3;color:#555;border:1.5px solid #ccc;
}
.btn-swipe-select{
  background:var(--brand);color:#fff;
}
.pick-swipe-gesture-hint{
  font-size:11px;color:var(--muted);margin:0;text-align:center;
}
.pick-add-compare{margin-top:4px}
.pick-swipe-empty{text-align:center;color:var(--muted);font-size:13px;padding:32px 12px}

/* —— 网格缩略图：查看大图 —— */
.pick-thumb-zoom{
  position:absolute;left:6px;bottom:6px;z-index:2;
  min-height:28px;padding:4px 8px;border:none;border-radius:999px;
  background:rgba(0,0,0,.58);color:#fff;
  font-size:11px;font-weight:800;font-family:inherit;letter-spacing:.02em;
  cursor:zoom-in;line-height:1.2;
  box-shadow:0 1px 4px rgba(0,0,0,.28);
  -webkit-tap-highlight-color:transparent;
}
.pick-thumb-zoom:active{background:rgba(139,35,50,.92)}
.ai-select-item .pick-thumb-zoom:focus-visible{
  outline:2px solid #fff;outline-offset:2px;
}

.pick-swipe-card.swipe-hint-left{box-shadow:-4px 0 0 var(--brand) inset}
.pick-swipe-card.swipe-hint-right{box-shadow:4px 0 0 var(--brand) inset}

/* —— 已选缩略图区 —— */
.pick-selected-panel{
  margin:8px 0 4px;padding:12px;background:var(--white);
  border:1px solid var(--border);border-radius:var(--radius);
}
.pick-selected-panel-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;
}
.pick-selected-panel-head strong{font-size:14px;color:var(--text)}
.pick-selected-panel-count{font-size:12px;font-weight:700;color:var(--brand)}
.pick-selected-thumbs{
  display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:4px;
  min-height:76px;align-items:center;-webkit-overflow-scrolling:touch;
}
.pick-selected-empty{
  margin:0;font-size:12px;color:var(--muted);width:100%;text-align:center;padding:18px 0;
}
.pick-selected-thumb{
  position:relative;flex:0 0 auto;width:68px;height:68px;
  border:2px solid transparent;border-radius:10px;overflow:hidden;background:#eee;
}
.pick-selected-thumb.current{border-color:var(--brand);box-shadow:0 0 0 2px rgba(139,35,50,.25)}
.pick-selected-open{
  display:block;width:100%;height:100%;padding:0;border:none;background:transparent;cursor:pointer;
}
.pick-selected-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.pick-selected-remove{
  position:absolute;top:2px;right:2px;width:22px;height:22px;border:none;z-index:1;
  border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:14px;line-height:1;
  cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;
}

/* —— 对比选片 —— */
.pick-compare-view{margin-bottom:16px}
.pick-compare-intro{font-size:12px;color:var(--muted);line-height:1.5;margin:0 0 12px}
.pick-compare-pool-wrap{
  margin-bottom:14px;padding:12px;background:var(--white);
  border:1px solid var(--border);border-radius:var(--radius);
}
.pick-compare-pool-head{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;
}
.pick-compare-pool-head strong{font-size:14px;color:var(--text)}
.pick-compare-pool-count{font-size:12px;font-weight:700;color:var(--brand)}
.pick-compare-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.pick-compare-slot{
  background:var(--white);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:8px;text-align:center;
}
.pick-compare-slot-label{font-size:11px;font-weight:700;color:var(--muted);display:block;margin-bottom:6px}
.pick-compare-slot-inner{
  aspect-ratio:1;border-radius:8px;background:var(--brand-bg);
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.pick-compare-slot-inner img{width:100%;height:100%;object-fit:cover}
.pick-compare-slot .muted{font-size:12px;color:var(--muted)}
.btn-xs{font-size:11px;padding:4px 8px;margin-top:6px}
.pick-compare-open{width:100%;margin-bottom:4px}
.pick-compare-pool{
  display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;padding-bottom:4px;
  -webkit-overflow-scrolling:touch;min-height:76px;align-items:center;
}
.pick-compare-pool-item{
  flex:0 0 auto;width:72px;height:72px;padding:0;border:2px solid transparent;
  border-radius:8px;overflow:hidden;cursor:pointer;background:#eee;
}
.pick-compare-pool-item.in-compare{border-color:var(--brand);box-shadow:0 0 0 2px rgba(139,35,50,.25)}
.pick-compare-pool-item.is-selected{outline:2px solid rgba(46,125,50,.45);outline-offset:1px}
.pick-compare-pool-item img{width:100%;height:100%;object-fit:cover;pointer-events:none}

.compare-overlay{
  position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.92);
  display:flex;flex-direction:column;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);
}
.compare-overlay-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 16px;color:#fff;flex-shrink:0;
}
.compare-overlay-close{
  border:none;background:rgba(255,255,255,.15);color:#fff;
  width:40px;height:40px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer;
}
.compare-stack{
  flex:1;overflow-y:auto;padding:8px 12px 16px;
  display:flex;flex-direction:column;gap:12px;
}
.compare-stack figure{margin:0;background:#111;border-radius:10px;overflow:hidden}
.compare-stack figcaption{
  font-size:11px;color:rgba(255,255,255,.75);padding:8px 10px 0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.compare-stack img{
  width:100%;height:auto;display:block;max-height:45vh;object-fit:contain;
  background:#0a0a0a;
}
.compare-overlay-tip{
  text-align:center;font-size:11px;color:rgba(255,255,255,.5);
  margin:0;padding:8px;flex-shrink:0;
}
body.compare-open,
body.smart-loading-open,
body.photo-lightbox-open{overflow:hidden}

/* —— 原图灯箱 —— */
.photo-lightbox{
  position:fixed;inset:0;z-index:550;
  display:flex;align-items:center;justify-content:center;
  padding:env(safe-area-inset-top) 12px env(safe-area-inset-bottom);
}
.photo-lightbox-backdrop{
  position:absolute;inset:0;background:rgba(0,0,0,.9);
}
.photo-lightbox-panel{
  position:relative;z-index:1;width:min(100%,720px);max-height:92vh;
  display:flex;flex-direction:column;background:#111;border-radius:12px;overflow:hidden;
  box-shadow:0 16px 48px rgba(0,0,0,.45);
}
.photo-lightbox-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 14px;color:#fff;flex-shrink:0;background:#0a0a0a;
}
.photo-lightbox-head strong{font-size:14px;font-weight:800}
.photo-lightbox-close{
  border:none;background:rgba(255,255,255,.15);color:#fff;
  width:40px;height:40px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer;
}
.photo-lightbox-body{
  flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;
  display:flex;align-items:center;justify-content:center;padding:8px;background:#000;
}
.photo-lightbox-body img{
  max-width:100%;max-height:78vh;width:auto;height:auto;display:block;object-fit:contain;
}
.photo-lightbox-cap{
  margin:0;padding:10px 14px 14px;font-size:12px;color:rgba(255,255,255,.7);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;
}

/* —— 智能选片 —— */
.smart-pick-loading{
  position:fixed;inset:0;z-index:600;
  background:rgba(20,12,14,.72);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;
  padding:24px;text-align:center;
  backdrop-filter:blur(4px);
}
.smart-pick-spinner{
  width:42px;height:42px;border-radius:50%;
  border:3px solid rgba(255,255,255,.25);
  border-top-color:#fff;
  animation:smart-spin .8s linear infinite;
}
@keyframes smart-spin{to{transform:rotate(360deg)}}
.smart-pick-loading-title{
  margin:0;font-size:17px;font-weight:800;color:#fff;letter-spacing:.02em;
}
.smart-pick-loading-sub{
  margin:0;font-size:13px;color:rgba(255,255,255,.72);
}

.pick-smart-view{
  margin-bottom:16px;padding:14px;
  background:var(--white);border:1px solid var(--border);
  border-radius:var(--radius);box-shadow:var(--shadow);
}
.pick-smart-head{margin-bottom:12px}
.pick-smart-head strong{display:block;font-size:15px;color:var(--text);margin-bottom:4px}
.pick-smart-intro{margin:0;font-size:12px;color:var(--muted);line-height:1.5}
.pick-smart-pair{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;
}
.pick-smart-card{
  margin:0;display:flex;flex-direction:column;gap:8px;align-items:stretch;
}
.pick-smart-img-wrap{
  aspect-ratio:3/4;border-radius:10px;overflow:hidden;
  background:var(--brand-bg);border:1px solid var(--border);
  padding:0;margin:0;cursor:pointer;display:block;width:100%;
  font:inherit;appearance:none;-webkit-appearance:none;
}
.pick-smart-img-wrap:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;
}
.pick-smart-img-wrap img{
  width:100%;height:100%;object-fit:contain;display:block;background:#1a1a1a;pointer-events:none;
}
.pick-smart-card.is-kept .pick-smart-img-wrap{
  border-color:var(--brand);box-shadow:0 0 0 2px rgba(139,35,50,.28);
}
.pick-smart-card.is-deciding{opacity:.55;pointer-events:none}
.pick-smart-card figcaption{
  font-size:11px;color:var(--muted);text-align:center;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.pick-smart-card .btn-swipe-decide{width:100%;padding:10px 8px;font-size:13px}
.pick-smart-actions{
  display:flex;gap:8px;margin-bottom:10px;
}
.pick-smart-actions .btn-chip{flex:1}
.pick-smart-drop{color:#a33!important}
.pick-smart-skip{width:100%;margin-top:2px}

.album-pick-actions .btn-primary{margin-top:12px;width:100%}
.album-pick-actions-row{
  display:flex;gap:8px;margin-top:10px;align-items:stretch;
}
.album-pick-actions-row .btn-outline{
  flex:1;min-width:0;margin-top:0;padding:10px 8px;
  font-size:12px;line-height:1.35;white-space:normal;text-align:center;
}

@media (min-width:769px){
  .pick-swipe-card{max-width:260px}
}

/* —— 微信下载引导 / 浏览器保存条 —— */
.wechat-dl-guide{
  position:fixed;inset:0;z-index:12000;
  display:flex;align-items:flex-end;justify-content:center;
}
.wechat-dl-guide.hidden{display:none!important}
.wechat-dl-guide-mask{
  position:absolute;inset:0;background:rgba(10,8,10,.55);
}
.wechat-dl-guide-panel{
  position:relative;z-index:1;width:100%;max-width:440px;
  margin:0;padding:22px 20px calc(20px + env(safe-area-inset-bottom));
  background:#fff;border-radius:18px 18px 0 0;
  box-shadow:0 -12px 40px rgba(0,0,0,.25);
  box-sizing:border-box;
}
.wechat-dl-guide-close{
  position:absolute;top:10px;right:12px;
  width:36px;height:36px;border:0;border-radius:50%;
  background:rgba(0,0,0,.06);font-size:22px;line-height:1;cursor:pointer;
}
.wechat-dl-guide-arrow{
  position:fixed;top:8px;right:14px;z-index:12001;
  font-size:34px;font-weight:700;color:#fff;
  text-shadow:0 2px 8px rgba(0,0,0,.45);
  animation:wechatDlBounce 1.1s ease-in-out infinite;
  pointer-events:none;
}
@keyframes wechatDlBounce{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(6px,-6px)}
}
.wechat-dl-guide-panel h2{
  margin:0 36px 10px 0;font-size:18px;font-weight:800;color:#1a1a1a;
}
.wechat-dl-guide-lead{
  margin:0 0 12px;font-size:14px;line-height:1.55;color:#444;
}
.wechat-dl-guide-steps{
  margin:0 0 12px;padding-left:1.2em;
  font-size:14px;line-height:1.7;color:#222;
}
.wechat-dl-guide-steps strong{color:var(--brand,#8B2332)}
.wechat-dl-guide-count{
  margin:0 0 14px;font-size:13px;color:var(--muted,#888);
}
.wechat-dl-guide-panel .btn-primary{width:100%;margin:0}
.wechat-dl-alt{width:100%;margin-top:10px}

.browser-dl-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:11000;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97);
  border-top:1px solid rgba(0,0,0,.08);
  box-shadow:0 -8px 28px rgba(0,0,0,.12);
}
.browser-dl-banner.hidden{display:none!important}
.browser-dl-banner-inner{
  max-width:480px;margin:0 auto;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
}
.browser-dl-banner-inner p{
  flex:1 1 100%;margin:0;font-size:14px;font-weight:600;color:#222;
}
.browser-dl-banner-inner .btn-primary,
.browser-dl-banner-inner .btn-outline{
  flex:1;margin:0;min-width:120px;
}
