.search-field button {
  flex: 0 0 auto;
  min-width: 58px;
  white-space: nowrap;
  word-break: keep-all;
}
.admin-login .link-button {
  display: inline-block;
  margin-top: 18px;
}
.captcha-row {
  align-items: end;
}
.captcha-refresh {
  height: 44px;
  flex: 0 0 auto;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--primary);
  font: 12px var(--sans);
  cursor: pointer;
  white-space: nowrap;
}
.captcha-refresh:hover {
  border-color: var(--primary);
}
.dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 24px;
}
.button.danger {
  background: #b74436;
  color: #fff;
}
.button.danger:hover {
  background: #98372e;
}
.account-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  white-space: nowrap;
}
.modal.upload-modal {
  width: min(820px, 100%);
}
.upload-modal #upload-form > .button[type="submit"] {
  position: sticky;
  bottom: 0;
  z-index: 3;
  width: 100%;
  box-shadow: 0 -10px 22px var(--solid);
}
.upload-source-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.upload-source {
  min-height: 112px;
  display: flex !important;
  flex-direction: column;
  justify-content: center;
  gap: 5px !important;
  padding: 18px;
  border: 1px dashed var(--primary);
  border-radius: 7px;
  background: rgba(22, 106, 101, .06);
  cursor: pointer;
  text-align: center;
}
.upload-source:hover {
  background: rgba(22, 106, 101, .11);
}
.upload-source strong {
  color: var(--text);
  font: 600 16px var(--serif);
}
.upload-source span {
  color: var(--muted);
  font-size: 12px;
}
.upload-source .upload-source-icon {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  margin: 0 auto 3px;
  border-radius: 8px;
  background: var(--primary);
  color: #fff;
  font: 600 22px var(--sans);
  line-height: 1;
}
.upload-source .folder-icon {
  background: var(--accent);
  font-size: 19px;
}
.file-list[data-file-list] {
  max-height: 205px;
  overflow: auto;
  margin: 0;
}
.file-list[data-file-list] .file-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 28px;
  align-items: center;
  gap: 9px;
}
.file-list[data-file-list] .file-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.file-list[data-file-list] .file-item small {
  white-space: nowrap;
}
.file-list[data-file-list] .file-item button {
  width: 28px;
  height: 28px;
  border: 0;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 18px;
}
.empty-file-list {
  padding: 17px;
  border: 1px dashed var(--line);
  border-radius: 6px;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}
.upload-review-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  max-height: 420px;
  overflow: auto;
  padding: 2px;
}
.review-image {
  min-width: 0;
  padding: 0;
  border: 2px solid transparent;
  border-radius: 6px;
  background: var(--bg);
  color: var(--muted);
  cursor: pointer;
  overflow: hidden;
}
.review-image.selected {
  border-color: var(--primary);
  color: var(--primary);
}
.review-image img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
}
.review-image span {
  display: block;
  height: 31px;
  padding: 7px 5px;
  font: 11px var(--sans);
}
.nested-dialog-layer {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 18px;
  background: rgba(6, 26, 25, .58);
  backdrop-filter: blur(8px);
}
.password-modal {
  width: min(430px, 100%);
}
.preview-banner {
  position: sticky;
  top: 10px;
  z-index: 4;
  width: fit-content;
  max-width: calc(100% - 32px);
  margin: 14px auto 0;
  padding: 8px 13px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--solid);
  box-shadow: var(--shadow);
  color: var(--primary);
  font-size: 12px;
}
.detail-shell {
  width: min(1040px, 100%);
  min-width: 0;
  overflow: hidden;
}
.photo-wall {
  width: 100%;
  min-width: 0;
}
.photo-wall img {
  max-width: 100%;
  height: auto;
  break-inside: avoid;
  object-fit: contain;
}
.photo-wall:has(img:only-child) {
  columns: 1;
  max-width: 760px;
}
body {
  overflow-x: hidden;
}
.album-video video { cursor: pointer; }
@media (max-width: 640px) {
  .upload-source-grid { grid-template-columns: 1fr; }
  .upload-source { min-height: 86px; }
  .upload-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.user-hero{display:flex;align-items:center;gap:22px;max-width:960px;margin:18px auto 42px;padding:30px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 88%,#72d8c2 12%),var(--surface));box-shadow:var(--shadow)}.user-avatar{display:grid;place-items:center;width:74px;height:74px;flex:0 0 74px;border-radius:24px;background:linear-gradient(135deg,var(--primary),#8ae6d1);color:#fff;font:600 31px var(--serif);box-shadow:0 12px 28px rgba(22,106,101,.22)}.user-hero h1{margin:2px 0 7px;font:600 35px var(--serif)}.user-hero p:not(.eyebrow){margin:0;color:var(--muted)}.user-stats{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;color:var(--muted);font-size:13px}.user-stats b{color:var(--text)}.creator-gallery{padding:0}@media(max-width:640px){.user-hero{align-items:flex-start;padding:20px;gap:15px;border-radius:15px}.user-avatar{width:54px;height:54px;flex-basis:54px;border-radius:18px;font-size:23px}.user-hero h1{font-size:28px}.user-stats{gap:7px 12px}}
.author-link{color:var(--primary);text-decoration:none;font-weight:600}.author-link:hover{text-decoration:underline}.load-more{display:flex;margin:30px auto 0;min-width:136px;justify-content:center}.load-more[hidden]{display:none!important}
.album-favorite{margin:20px auto 0}.album-favorite.is-favorited{background:rgba(22,106,101,.14);border-color:var(--primary);color:var(--primary)}
.my-library-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.my-library-tabs button{border:1px solid var(--line);border-radius:999px;padding:8px 14px;background:var(--surface);color:var(--muted);font:13px var(--sans);cursor:pointer;transition:.2s}.my-library-tabs button.active{background:var(--primary);border-color:var(--primary);color:#fff}.my-album-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.my-album-cover-link{display:grid;place-items:center;height:230px;background:var(--bg);overflow:hidden}.my-album-cover-link>img{display:block;width:100%;height:100%;object-fit:contain!important;background:var(--bg)}@media(max-width:1000px){.my-album-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media(max-width:700px){.my-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
.my-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}.my-actions .admin-action{min-width:0!important;padding-left:6px!important;padding-right:6px!important;white-space:nowrap!important;word-break:keep-all!important;overflow:hidden;text-overflow:ellipsis}.my-actions .lucide{flex:0 0 auto}
.curation-list{display:grid;gap:8px;margin-top:18px;max-height:260px;overflow:auto;padding-right:3px}.curation-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.03)}.curation-list span{min-width:0;display:grid;gap:2px}.curation-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.curation-list small{color:var(--muted)}.curation-grid select[multiple]{min-height:138px;padding:7px}
.password-card .album-cover img,.code-card .album-cover img,.password-card:hover .album-cover img,.code-card:hover .album-cover img{filter:blur(23px)!important;transform:scale(1.17)!important}.album-view-header{max-width:1120px!important;width:100%;margin:0 auto 30px!important;padding:34px clamp(20px,5vw,52px);border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 92%,#78dfc9 8%),var(--surface));box-shadow:var(--shadow);backdrop-filter:blur(18px)}.album-view-header .album-description{margin:20px auto 0}.album-info-stats{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:22px}.album-info-stats span{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.16);font-size:12px;color:var(--muted)}.album-info-stats .lucide{width:14px;height:14px;color:var(--primary)}.media-gallery-panel{max-width:1120px;margin-left:auto;margin-right:auto}.media-toolbar-actions .album-favorite{margin:0}.media-toolbar-actions{align-items:center}.album-favorite{min-height:34px!important;padding:0 13px!important}
@media(max-width:800px){.album-view-header{padding:25px 18px;border-radius:18px}.media-toolbar-actions{width:100%;justify-content:space-between}.media-toolbar-actions .album-favorite{flex:0 0 auto}.album-favorite span{display:none}.album-favorite{width:38px;padding:0!important;justify-content:center}}
.discovery-highlights{max-width:1184px;margin:0 auto;padding:8px 28px 10px}.highlight-block{margin:12px 0 32px}.highlight-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.highlight-strip .album-cover{height:220px}.topic-block{border:1px solid var(--line);border-radius:18px;padding:20px;background:linear-gradient(120deg,rgba(33,137,129,.11),rgba(255,255,255,.02));margin-bottom:30px}.topic-block>.eyebrow{margin:0 0 12px}.topic-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.topic-strip article{display:flex;align-items:flex-start;gap:11px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0}.topic-strip article>span{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:10px;background:var(--primary);color:#fff;font:600 17px var(--serif)}.topic-strip h3{font:600 16px var(--serif);margin:0}.topic-strip p{margin:3px 0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topic-strip small{color:var(--primary);font-size:11px}@media(max-width:800px){.discovery-highlights{padding:8px 16px}.highlight-strip{display:flex;overflow:auto;padding-bottom:4px;scroll-snap-type:x mandatory}.highlight-strip .album-card{min-width:210px;scroll-snap-align:start}.highlight-strip .album-cover{height:255px}.topic-strip{grid-template-columns:1fr}.topic-block{border-radius:14px;padding:15px}}
.topic-strip .topic-card{display:flex;align-items:flex-start;gap:11px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);min-width:0;text-decoration:none;color:inherit}.topic-strip .topic-card>span{display:grid;place-items:center;width:32px;height:32px;flex:none;border-radius:10px;background:var(--primary);color:#fff;font:600 17px var(--serif)}.collection-header{max-width:900px;margin:10px auto 30px;padding:34px clamp(20px,5vw,52px);border:1px solid var(--line);border-radius:24px;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 92%,#78dfc9 8%),var(--surface));box-shadow:var(--shadow)}.collection-header h1{font:600 42px var(--serif);margin:0 0 8px}.collection-header p:not(.eyebrow){color:var(--muted);margin:0}@media(max-width:800px){.collection-header{border-radius:18px;padding:25px 18px}.collection-header h1{font-size:32px}}
.album-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:20px}.album-tags a{padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(22,106,101,.08);color:var(--primary);font-size:12px;text-decoration:none}.album-related{margin-top:54px}.album-related .album-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:800px){.album-related{margin-top:38px}.album-related .album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.upload-job-list{display:grid;gap:10px}.upload-job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.upload-job strong,.upload-job small{display:block}.upload-job small{margin-top:4px;color:var(--muted);font-size:12px}.upload-job .notice{grid-column:1/-1;margin:0}@media(max-width:640px){.upload-job{grid-template-columns:1fr}.upload-job .status{justify-self:start}}
.file-list[data-file-list] .file-item{display:grid!important;grid-template-columns:minmax(0,1fr) auto 38px;grid-template-areas:"name size remove" "progress percent remove";align-items:center!important;gap:8px 12px!important;min-width:0;padding:12px!important}.file-list[data-file-list] .file-item>span{grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-list[data-file-list] .file-item small{grid-area:size;white-space:nowrap;text-align:right;color:var(--muted)}.file-progress{grid-area:progress;width:100%;height:10px;overflow:hidden;border-radius:999px;background:rgba(22,106,101,.12);box-shadow:inset 0 0 0 1px rgba(22,106,101,.08)}.file-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .25s ease}.file-percent{grid-area:percent;min-width:42px;text-align:right;font:600 12px var(--mono);color:var(--primary)}.file-list[data-file-list] .file-item button{grid-area:remove;appearance:none!important;display:grid!important;place-items:center!important;width:38px!important;height:38px!important;margin:0!important;padding:0!important;border:0!important;border-radius:999px!important;background:linear-gradient(145deg,#d85e55,#a92f2b)!important;box-shadow:0 8px 18px rgba(183,68,54,.22)!important;color:#fff!important;font-size:0!important;transition:.18s}.file-list[data-file-list] .file-item button:hover{background:linear-gradient(145deg,#ee786d,#b53933)!important;transform:translateY(-2px) scale(1.04)}.file-list[data-file-list] .file-item button .lucide{width:17px;height:17px}@media(max-width:640px){.file-list[data-file-list] .file-item{grid-template-columns:minmax(0,1fr) auto 34px;gap:7px 9px;padding:10px!important}.file-list[data-file-list] .file-item button{width:34px!important;height:34px!important}.file-percent{min-width:34px;font-size:11px}}
.curation-multiselect{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.curation-multiselect summary{padding:10px;cursor:pointer;list-style:none;font-size:13px;color:var(--text)}.curation-multiselect summary::-webkit-details-marker{display:none}.curation-multiselect summary:after{content:'⌄';float:right;color:var(--muted);transition:transform .18s}.curation-multiselect[open] summary:after{transform:rotate(180deg)}.curation-multiselect-options{display:grid;gap:2px;max-height:210px;overflow:auto;padding:6px;border-top:1px solid var(--line)}.curation-multiselect-options label{display:flex!important;align-items:center;gap:8px;padding:8px;border-radius:7px;cursor:pointer}.curation-multiselect-options label:hover{background:rgba(22,106,101,.08)}.curation-multiselect-options input{width:auto!important}
.admin-album-cover img{object-fit:contain!important;background:var(--bg)}
#cat-form label:has(input[type="file"]){position:relative;min-height:96px;padding:16px;border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--line));border-radius:14px;background:linear-gradient(135deg,rgba(22,106,101,.08),rgba(255,255,255,.02));cursor:pointer;overflow:hidden;color:var(--text)!important}#cat-form label:has(input[type="file"]):before{content:'分类封面';font:600 14px var(--sans)}#cat-form label:has(input[type="file"]):after{content:'选择图片 · JPG / PNG / WebP / GIF / AVIF';margin-top:5px;color:var(--muted);font-size:12px}#cat-form label:has(input[type="file"]) input{position:absolute;inset:0;z-index:2;width:100%!important;height:100%;padding:0!important;opacity:0;cursor:pointer}#cat-form label:has(input[type="file"]):hover{border-style:solid;border-color:var(--primary);box-shadow:0 10px 24px rgba(22,106,101,.1)}
.publish-detail-code>div{display:grid;gap:4px}.publish-detail-code>div>span{color:var(--muted);font-size:12px}.publish-detail-code>div>strong{font:600 28px var(--mono);letter-spacing:.18em;color:var(--primary)}.publish-detail-code>button{justify-self:end}.share-link-field button{justify-self:end}.album-video.media-wide{column-span:all;width:100%}.album-video.media-wide video{width:100%;max-height:78vh;aspect-ratio:16/9}.album-video.media-portrait{break-inside:avoid}.album-video video::-webkit-media-controls-picture-in-picture-button{display:none!important}.album-video video::-webkit-media-controls-overflow-button{display:none!important}.category-cover-card{overflow:hidden}.category-cover-preview,.category-cover-empty{display:block;width:100%;height:132px;object-fit:cover;border-radius:10px;margin-bottom:14px}.category-cover-empty{display:grid;place-items:center;background:linear-gradient(135deg,rgba(22,106,101,.12),rgba(255,255,255,.03));color:var(--muted);font-size:12px}.category-modal-cover{min-height:76px;border:1px dashed var(--line);border-radius:10px;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:12px}.category-modal-cover img{display:block;width:100%;max-height:160px;object-fit:cover}
