.home-scroll{height:100%;overflow-y:auto;padding:24px 20px;-webkit-overflow-scrolling:touch;scroll-behavior:smooth}
.home-scroll{max-width:900px;margin:0 auto}
.home-section{margin-bottom:18px;border:1px solid var(--border);border-radius:20px;background:var(--surface);padding:20px;box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.2,.7,.3,1),box-shadow .3s,border-color .3s;animation:fadeUp .4s ease both;position:relative;overflow:hidden}
.home-section:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-focus)}
.home-section-title{font-size:13px;font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px;letter-spacing:.2px;color:var(--text)}
.home-section-title i{color:var(--accent-text);font-size:13px}
.home-section-title .badge{background:var(--accent-soft);color:var(--accent-text);padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600}

/* ===== SOURCE CARDS ===== */
.src-item{border:1px solid var(--border);border-radius:18px;padding:16px 18px;margin-bottom:10px;background:var(--surface);box-shadow:var(--shadow-sm);position:relative;transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s,border-color .28s;animation:fadeUp .35s ease both;cursor:default}
.src-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-focus)}
.src-item .src-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.src-item .src-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.src-item .src-name i{color:var(--accent-text);opacity:0;transform:scale(.5);transition:all .25s}
.src-item:hover .src-name i{opacity:1;transform:scale(1)}
.src-item .src-tag{font-size:11px;background:var(--surface-3);border:1px solid var(--border);border-radius:999px;padding:2px 12px;color:var(--text-dim)}
.src-item .src-url{font-size:11px;color:var(--text-muted);word-break:break-all;margin-top:6px;display:flex;align-items:center;gap:6px}
.src-item .src-url i{font-size:10px;opacity:.6}
.src-item .src-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;font-size:11px;color:var(--text-dim)}
.src-item .src-meta span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--surface-2);border-radius:8px;transition:all .2s}
.src-item .src-meta span:hover{background:var(--surface-3)}
.src-item .src-meta .num{color:var(--accent-text);font-weight:700}
.src-item .src-actions{position:absolute;top:12px;right:12px;display:flex;gap:6px;opacity:0;transform:translateY(-4px);transition:all .25s}
.src-item:hover .src-actions{opacity:1;transform:translateY(0)}
.src-item .src-actions button{width:30px;height:30px}
.src-item .src-error{font-size:11px;color:var(--danger);margin-top:8px;display:flex;align-items:center;gap:6px}
.src-item .src-synced{font-size:11px;color:var(--accent-text);margin-top:8px;display:flex;align-items:center;gap:6px}

/* ===== MERGE PICKER ===== */
.merge-src{display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--border);border-radius:14px;margin-bottom:8px;background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .25s cubic-bezier(.2,.7,.3,1),box-shadow .25s,border-color .25s;animation:fadeUp .3s ease both}
.merge-src:hover{border-color:var(--border-focus);transform:translateY(-2px);box-shadow:var(--shadow-md)}
.merge-src.selected{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.merge-src input{width:19px;height:19px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}
.merge-src .ms-icon{width:36px;height:36px;border-radius:10px;background:var(--surface-3);display:flex;align-items:center;justify-content:center;color:var(--text-dim);transition:all .25s;flex-shrink:0}
.merge-src.selected .ms-icon{background:var(--accent);color:var(--bg)}
.merge-src .ms-name{font-size:13px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.merge-src .ms-meta{font-size:11px;color:var(--text-dim);white-space:nowrap}

.merge-empty{padding:36px 16px;text-align:center;color:var(--text-muted);font-size:12px;line-height:2}
.merge-empty a{color:var(--accent-text);cursor:pointer;text-decoration:underline}

/* ===== MANUAL PICK LIST ===== */
.pick-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.pick-header .btn-icon{width:30px;height:30px;border-radius:9px;font-size:12px}
.pick-hint{font-size:11px;color:var(--text-muted);margin-left:auto}
.pick-item{display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid var(--border);border-radius:13px;margin-bottom:7px;background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .22s cubic-bezier(.2,.7,.3,1),box-shadow .22s,border-color .22s;animation:fadeUp .3s ease both;-webkit-tap-highlight-color:transparent}
.pick-item:hover{border-color:var(--border-focus);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.pick-item input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0;cursor:pointer}
.pick-item:has(input:checked){background:var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.pick-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pick-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.pick-sub{font-size:10px;color:var(--text-dim);background:var(--surface-3);padding:1px 8px;border-radius:999px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pick-type{font-size:10px;color:var(--accent-text);background:var(--accent-soft);padding:1px 8px;border-radius:999px;flex-shrink:0}
.pick-src{font-size:10px;color:var(--text-muted);display:inline-flex;align-items:center;gap:5px;flex-shrink:0;white-space:nowrap;max-width:110px;overflow:hidden;text-overflow:ellipsis}

/* ===== PUBLISHED ===== */
.pub-item{border:1px solid var(--border);border-radius:18px;padding:16px 18px;margin-bottom:10px;background:var(--surface);box-shadow:var(--shadow-sm);position:relative;transition:transform .28s cubic-bezier(.2,.7,.3,1),box-shadow .28s,border-color .28s;animation:fadeUp .35s ease both}
.pub-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:var(--border-focus)}
.pub-item .pub-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pub-item .pub-name{font-size:14px;font-weight:600;display:flex;align-items:center;gap:8px}
.pub-item .pub-name i{color:var(--accent-text)}
.pub-item .pub-id{font-size:11px;color:var(--text-muted);background:var(--surface-2);padding:1px 8px;border-radius:6px}
.pub-item .pub-url{font-size:11px;color:var(--accent-text);word-break:break-all;margin-top:8px;cursor:pointer;padding:7px 10px;background:var(--accent-soft);border:1px solid transparent;border-radius:8px;transition:all .2s;display:flex;align-items:center;gap:6px}
.pub-item .pub-url:hover{border-color:var(--accent)}
.pub-item .pub-actions{position:absolute;top:12px;right:12px;display:flex;gap:6px;opacity:0;transform:translateY(-4px);transition:all .25s}
.pub-item:hover .pub-actions{opacity:1;transform:translateY(0)}
.pub-item .pub-actions button{width:30px;height:30px}
.pub-item .pub-meta{display:flex;gap:14px;margin-top:8px;font-size:11px;color:var(--text-dim)}
.pub-item .pub-meta span{display:inline-flex;align-items:center;gap:5px}

/* ===== STRUCT MODAL ===== */
.struct-block{margin-bottom:12px}
.struct-block h4{font-size:12px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.struct-block h4 .cnt{background:var(--accent-soft);color:var(--accent-text);padding:1px 9px;border-radius:999px;font-size:10px}
.struct-block h4 i{color:var(--accent-text);font-size:12px}
.struct-list{display:flex;flex-wrap:wrap;gap:6px}
.struct-list .tag{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.raw-json-wrap{max-height:320px;overflow:auto;background:var(--cm-bg);border:1px solid var(--border);border-radius:12px;padding:14px;font-size:11px;white-space:pre-wrap;word-break:break-all;color:var(--text)}

/* stagger entrance for lists */
#srcList .src-item:nth-child(2){animation-delay:.04s}
#srcList .src-item:nth-child(3){animation-delay:.08s}
#srcList .src-item:nth-child(4){animation-delay:.12s}
#srcList .src-item:nth-child(5){animation-delay:.16s}
#srcList .src-item:nth-child(6){animation-delay:.2s}
#srcList .src-item:nth-child(7){animation-delay:.24s}
#srcList .src-item:nth-child(8){animation-delay:.28s}

/* ===== MOBILE ===== */
@media(max-width:768px){
  .home-scroll{padding:16px 12px}
  .home-section{padding:16px}
}
@media(max-width:480px){
  .src-item,.pub-item{padding:14px}
  .src-item .src-actions,.pub-item .pub-actions{position:static;opacity:1;transform:none;justify-content:flex-end;margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}
  .src-item:hover{transform:none}
  .src-item .src-name i{opacity:1;transform:none}
  .src-item .src-actions button,.pub-item .pub-actions button{width:36px;height:36px}
  .merge-src{padding:13px 12px}
  .merge-src .ms-icon{width:34px;height:34px}
  .pub-item .pub-meta{flex-wrap:wrap;gap:8px 14px}
  .pub-item .pub-actions{position:static;opacity:1;transform:none;justify-content:flex-end;margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}
  .pick-item{padding:12px;gap:8px}
  .pick-item .pick-src{max-width:80px;font-size:9px}
  .pick-item .pick-sub{max-width:80px;font-size:9px}
}
