.collection-shell {
  max-width: 1640px;
  margin: 20px auto;
  padding: 0 24px 32px;
}
html{scrollbar-gutter:stable}
.collection-methods{display:flex;gap:8px;padding:18px 30px 0}
.collection-methods button{flex:1;text-align:left;font-size:16px;padding:12px;min-width:0}
.collection-methods button span{display:block;font-size:16px;color:var(--muted);margin-top:5px}
.collection-methods button[aria-current=page]{background:#f2f8f4;border-color:#8eb7a9;color:var(--accent)}
.stat-value,.count strong,#last-update{font-variant-numeric:tabular-nums}
#auto-import-status:empty{display:none}
.link-panel{width:600px}.link-panel .setup{padding-top:22px}.link-panel .setup>label{display:flex;justify-content:space-between;align-items:center;margin-top:0}.link-panel .field-aside{font-size:16px;color:var(--muted);font-weight:400}.link-panel textarea{resize:vertical;min-height:142px;font-size:16px;line-height:1.8}.link-preview-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 12px}.link-preview-heading h3{margin:0;font-size:16px}.link-preview-heading>span{color:var(--muted);font-size:16px}.link-preview{border:1px solid var(--line);border-radius:10px;max-height:290px;overflow:auto}.link-placeholder{padding:18px;color:var(--muted);font-size:16px;margin:0}.link-preview-row{display:flex;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.link-preview-row:last-child{border-bottom:0}.link-line-number{font-size:16px;color:#9ca7a1;padding-top:2px;font-variant-numeric:tabular-nums}.link-row-text{min-width:0;flex:1}.link-row-heading{display:flex;justify-content:space-between;gap:12px;font-size:16px}.link-row-heading strong{font-weight:500}.link-state{font-size:16px;color:#488270;background:#f1f8f4;padding:2px 7px;border-radius:4px}.link-address{display:block;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#78847e;margin:5px 0}.link-row-text small{font-size:16px;color:var(--muted)}.link-preview-row[data-state=invalid] .link-state,.link-preview-row[data-state=invalid] small{color:#a75642}.link-preview-row[data-state=invalid] .link-state{background:#fff4ef}.link-preview-row[data-state=duplicate] .link-state{background:#f4f4f4;color:#8c9590}.link-preview>.error{font-size:16px;padding:0 14px}.link-operation{border:0;padding:0;margin:24px 0 0}.link-operation legend{font-size:16px;margin-bottom:12px}.link-panel .operation-option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:9px;padding:14px;margin:8px 0;cursor:pointer}.link-panel .operation-option:has(input:checked){border-color:#8eb7a9;background:#f7fbf9}.operation-option input{margin-top:3px;flex-shrink:0;accent-color:var(--accent)}.operation-option strong{display:block;font-size:16px;font-weight:500}.operation-option small{display:block;font-size:16px;color:var(--muted);margin-top:6px;line-height:1.6}.link-service-message{background:#f7f9f8;border:1px solid var(--line);padding:13px;border-radius:8px;font-size:16px;line-height:1.8;color:#6b7d72}.link-footer{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.link-footer button{font-size:16px;min-height:42px}.link-panel .hint{line-height:1.8}
.link-panel .operation-option input[type=radio]{display:inline-block;width:16px;height:16px;min-height:16px;padding:0;margin:2px 0 0}
.link-panel .link-operation{margin:24px 0 0}.bundle-result-link{display:inline-flex;margin-top:10px;font-size:16px;color:var(--accent)}
@media(max-width:600px){.collection-shell .heading-actions{flex-wrap:wrap;justify-content:flex-end}.collection-shell .page-heading{gap:12px}.collection-shell .page-heading .heading-actions{max-width:190px}.link-panel .field-aside{font-size:16px}.link-preview-heading>span{font-size:16px}.link-footer{flex-direction:column-reverse}}
/* Task list first; batch configuration appears only when requested. */
.collection-service{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:-4px 0 20px;font-size:16px}
.collection-service #capability{margin:0;color:#7c8b82;font-size:16px;line-height:1.8}
.collection-service #capability:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#8aab96;margin-right:8px}
.collection-service a{white-space:nowrap;font-size:16px}
.jobs-card{padding:24px!important;margin:0 0 22px!important}
.jobs-heading{display:flex;align-items:center;gap:9px}.jobs-heading h2{margin:0}.list-count{background:#f1f4f2;color:#839387;padding:1px 6px;border-radius:5px;font-size:16px}
.collection-filters{display:flex;justify-content:space-between;gap:12px;margin-bottom:22px}.search-field{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding-left:12px;width:290px;margin:0}.search-field>span{font-size:22px;color:#a2aca6;line-height:1}.search-field input{border:0!important;margin:0!important;background:transparent!important}.collection-filters>select{width:120px;font-size:16px}
.job-table-header,.jobs-card .job-row{display:grid;grid-template-columns:minmax(0,1fr) 100px 100px 110px 20px;gap:18px;align-items:center}.job-table-header{font-size:16px;color:#a0a8b0;border-bottom:1px solid var(--line);padding:0 5px 12px}
.jobs-card .job-row{border:0;border-bottom:1px solid #eff2f4;border-radius:0;background:none;width:100%;padding:18px 5px;margin:0;box-shadow:none;text-align:left}.jobs-card .job-row:last-child{border-bottom:0}.jobs-card .job-row:hover{background:#fafcfb}.jobs-card .job-row[aria-current=true]{background:#f2f8f4;border-color:#e6eee9}.job-name{display:flex;gap:12px;align-items:center;min-width:0}.job-name strong{font-size:16px;font-weight:500;display:block}.job-name small{font-size:16px;color:#a2aab2;display:block;margin-top:3px}.job-platform{width:34px;height:34px;border-radius:9px;background:#f6f1e8;color:#b39160;display:grid;place-items:center;font-size:16px;font-weight:600;flex-shrink:0}.job-platform[data-platform=xiaohongshu]{background:#fceff1;color:#bd7c88}.job-platform[data-platform=bilibili]{background:#edf5fb;color:#75a1bb}.job-platform[data-platform=douyin]{background:#f0f1f4;color:#718091}.job-count{font-size:16px;color:#7a8a7e;font-variant-numeric:tabular-nums}.job-date{font-size:16px;color:#99a1aa}.job-chevron{font-size:20px;color:#b0bab3}.jobs-card #jobs{max-height:540px;overflow:auto}.jobs-card #jobs:has(.empty-state){max-height:none}.jobs-card #jobs .empty-state{padding:45px 20px 35px}.jobs-card #jobs .empty-state button{font-size:16px}.jobs-card .status-badge{justify-self:start}.quiet-button{background:transparent;border:1px solid var(--line);font-size:16px}
#job-detail{padding:24px}.job-technical{border:0;margin:0}.job-technical summary{font-size:16px;color:#94a299;min-height:25px;padding:3px 0}.job-technical p{font-size:16px}.bundle-section{border-top:1px solid var(--line);padding-top:23px;margin-top:22px}.bundle-toolbar{margin:18px 0}.bundle-toolbar label{font-size:16px}.bundle-toolbar button{font-size:16px}#job-detail .counts{margin:18px 0;gap:10px}#job-detail .count{background:#f8faf9;padding:14px 16px;border:1px solid #edf1ee;border-radius:8px}#job-detail .count strong{font-size:25px;line-height:1.5}#job-detail .count span{font-size:16px;color:#9aa59e}#job-detail #job-message{font-size:16px;color:#7b897f;margin-bottom:16px}#job-detail .bundle{border-color:var(--line);border-radius:9px;padding:18px}#job-detail .bundle h3{font-size:16px}
.create-panel{position:fixed;inset:0 0 0 auto;margin:0;width:480px;max-width:100vw;height:100dvh;max-height:100dvh;border:0;border-left:1px solid var(--line);border-radius:0;background:#fff;padding:0;color:var(--ink);box-shadow:-12px 0 50px #16332610;overflow:auto}.create-panel::backdrop{background:#1f302d38;backdrop-filter:blur(2px)}.drawer-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:30px 30px 24px;border-bottom:1px solid var(--line)}.drawer-header h2{font-size:23px;margin:6px 0 8px;letter-spacing:-.5px}.drawer-header p{font-size:16px;color:var(--muted);margin:0}.small-caption{font-size:16px;letter-spacing:1.6px;color:#98a79d}.drawer-header button{font-size:23px;border:0;box-shadow:none;color:#9ba69e;background:transparent;padding:0 6px;min-height:30px}.create-panel .setup{padding:10px 30px 30px}.create-panel label{font-size:16px;margin:18px 0 12px}.create-panel .hint{font-size:16px;color:#9aa39e}.create-panel #settings>details{border:1px solid var(--line);border-radius:8px;padding:0 14px;margin:22px 0 18px}.create-panel summary{font-size:16px;color:#708978}.create-panel details label{font-size:16px}.create-panel .permission-fields{gap:8px}.create-panel textarea{min-height:85px}.create-panel #basis{min-height:65px}.create-panel #create-job{margin-top:10px;min-height:44px}.create-panel #create-message:not([hidden]){margin:16px 30px 0;font-size:16px;color:#a75642;background:#fff4ef;border:1px solid #f0ded5;border-radius:8px;padding:12px}
@media(max-width:1100px){.job-table-header,.jobs-card .job-row{grid-template-columns:minmax(0,1fr) 85px 75px 20px;gap:12px}.job-date{display:none}}
@media(max-width:600px){.collection-service{align-items:flex-start;flex-direction:column;gap:8px}.jobs-card{padding:18px!important}.collection-filters .search-field{width:auto;flex:1;min-width:0}.collection-filters>select{width:95px;font-size:16px}.job-table-header{display:none}.jobs-card .job-row{grid-template-columns:minmax(0,1fr) 75px;gap:12px;padding:16px 0}.job-count,.job-chevron{display:none}.job-name{gap:9px}.job-name strong{font-size:16px}.job-name small{font-size:16px}.job-platform{width:30px;height:30px;font-size:16px}.status-badge{font-size:16px}#job-detail{padding:18px}#job-detail .counts{grid-template-columns:repeat(2,minmax(0,1fr))}.drawer-header{padding:25px 22px}.create-panel .setup{padding:8px 22px 25px}.collection-shell .page-heading .heading-actions{gap:6px}.collection-shell .page-heading .quiet-button{padding:7px 9px;font-size:16px}.collection-shell .page-heading p{max-width:180px}.collection-shell .page-heading h1{font-size:23px}}
.collection-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.collection-heading h1 {
  margin: 0;
}
.collection-layout {
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
.collection-layout .card {
  margin: 12px 0;
}
.setup {
  padding: 18px;
}
.setup fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
.setup summary {
  cursor: pointer;
  font-weight: 600;
}
.permission-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.permission-fields select {
  padding: 6px 2px;
  font-size: 16px;
}
.notice {
  background: #edf4fb;
  border-left: 3px solid #477aa6;
  padding: 12px 16px;
}
.notice:not([hidden]) { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.notice p { margin: 0; }
.error {
  color: #a32c32;
}
.job-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  text-align: left;
  margin: 8px 0;
}
.job-row[aria-current="true"] {
  background: #e8f0f9;
  border-color: #265c91;
}
.job-row small {
  display: block;
  color: var(--muted);
}
.counts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 18px 0;
}
.count {
  padding: 10px;
  background: #f3f6fa;
  border-radius: 6px;
}
.count strong {
  display: block;
  font-size: 24px;
  font-weight: 600;
}
.count span {
  font-size: 16px;
  color: var(--muted);
}
.bundle {
  border: 1px solid var(--line);
  border-radius: 6px;
  margin: 12px 0;
  padding: 14px;
}
.bundle h3 {
  font-size: 16px;
  margin: 0;
}
.bundle header {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.bundle header label {
  margin: 0;
  flex: 1;
}
.bundle header label input {
  margin-right: 8px;
}
.bundle .steps {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 10px 0;
}
.step {
  background: #f1f4f8;
  border: 1px solid var(--line);
  padding: 3px 8px;
  border-radius: 4px;
  font-size: 16px;
}
.step.attention {
  color: #835b16;
  background: #fff7e7;
}
.step.ready {
  color: #28634a;
  background: #edf7f1;
}
.bundle p {
  font-size: 16px;
}
.bundle .receipt {
  border-top: 1px solid var(--line);
  padding-top: 8px;
}
#job-state {
  margin-left: auto;
}
#job-error:empty,
#import-summary:empty {
  display: none;
}
#create-job {
  width: 100%;
  margin-top: 12px;
}
#jobs {
  max-height: 280px;
  overflow: auto;
}
#capability {
  margin: 16px 0 0;
}
#job-meta {
  overflow-wrap: anywhere;
}
@media (min-width: 1700px) {
  .collection-layout {
    grid-template-columns: 390px minmax(0, 1fr);
  }
}
@media (max-width: 1000px) {
  .collection-layout {
    grid-template-columns: 300px minmax(0, 1fr);
  }
  .counts {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .collection-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .collection-shell {
    padding: 0 12px 24px;
  }
  .counts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .collection-heading {
    align-items: flex-start;
  }
  .collection-results {
    min-width: 0;
  }
  .job-row {
    flex-wrap: wrap;
  }
  .topbar {
    flex-wrap: wrap;
  }
}
/* Link-batch detail layout: keep title, timestamp and state independently readable. */
.batch-row {
  grid-template-columns: minmax(0, 1fr) minmax(150px, 260px) 24px;
  align-items: start;
  min-height: 72px;
}
.batch-row > span:first-child {
  min-width: 0;
  display: grid;
  gap: 5px;
  align-content: start;
}
.batch-row > span:first-child strong,
.batch-row > span:first-child small {
  min-width: 0;
  overflow-wrap: anywhere;
}
.batch-row > .batch-summary {
  align-self: start;
  line-height: 1.55;
  text-align: right;
  overflow-wrap: anywhere;
}
.batch-row > .job-chevron {
  align-self: center;
}
.batch-phases {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  list-style: none !important;
  padding-inline-start: 0 !important;
  margin-left: 0 !important;
}
.batch-phases li::marker { content: ""; }
.batch-phases li {
  min-width: 0;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.batch-item .section-heading {
  align-items: flex-start;
}
.batch-item .section-heading > div {
  min-width: 0;
}
.batch-item .section-heading h3 {
  line-height: 1.45;
}
.batch-address {
  line-height: 1.55;
}
@media (max-width: 700px) {
  .batch-row {
    grid-template-columns: minmax(0, 1fr) 24px;
  }
  .batch-row > .batch-summary {
    grid-column: 1 / -1;
    text-align: left;
  }
  .batch-phases {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}
