:root {
  --page: #dfe6e2;
  --surface: #fff;
  --surface-raised: #f8faf8;
  --surface-muted: #edf1ee;
  --surface-accent: #dcefe8;
  --text: #111614;
  --text-muted: #5e6964;
  --text-faint: #75817b;
  --line: #d4dad6;
  --line-strong: #aab5af;
  --accent: #08785c;
  --accent-strong: #075a46;
  --accent-contrast: #fff;
  --radius: 7px;
  --radius-control: 6px;
  --shadow: 0 18px 50px rgb(27 42 35 / 8%);
}

body { background: var(--page); }
.app-shell { position: relative; z-index: 1; }
.topbar { height: 68px; min-height: 68px; padding: 0 20px; background: var(--bg-glass, rgb(248 250 248 / 94%)); backdrop-filter: blur(16px) saturate(1.2); -webkit-backdrop-filter: blur(16px) saturate(1.2); }
.topbar-inner { display: grid; grid-template-columns: minmax(220px,1fr) auto minmax(220px,1fr); width: min(1560px,100%); }
.brand-mark { width: 36px; height: 36px; border: 0; border-radius: 6px; object-fit: contain; }
.brand-copy strong { font-size: 14px; }
.brand-copy small { color: var(--text-faint); font-size: 9px; text-transform: uppercase; }
.primary-public-nav { display: flex; gap: 4px; padding: 4px; border: 0; border-radius: 999px; background: color-mix(in srgb, var(--surface) 78%, transparent); }
.primary-public-nav a { min-height: 36px; padding: 8px 16px; border-radius: 999px; color: var(--text-muted); font-size: 12px; font-weight: 750; text-decoration: none; transition: color .2s ease, background .2s ease; }
.primary-public-nav a[aria-current="page"] { color: var(--brand); background: var(--brand-soft); box-shadow: none; }
.topbar-actions { justify-content: flex-end; }
.service-status { border: 0; background: transparent; }

.page-content { width: min(1320px,calc(100% - 40px)); padding: 18px 0 54px; }

.announcement-bar { padding: 0 30px; margin: 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: rgb(255 255 255 / 91%); }
.announcement-items { gap: 0; border-top: 1px solid var(--line); }
.announcement-item { min-height: 50px; gap: 10px; padding: 10px 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; }
.announcement-item:last-child { border-bottom: 0; }
.announcement-bar-icon { width: 19px; height: 19px; color: var(--warning); background: transparent; }
.announcement-bar-title { display: inline; margin-right: 9px; color: var(--warning); font-size: 11px; }
.announcement-bar-content { display: inline; color: var(--text-muted); font-size: 11px; }

.workspace-grid { grid-template-columns: minmax(560px,1fr) 336px; gap: 0; margin: 0; border: 1px solid rgb(170 181 175 / 78%); border-radius: 7px; background: rgb(248 250 248 / 86%); box-shadow: var(--shadow); overflow: clip; }

.results-panel,.share-panel { border: 0; border-radius: 0; box-shadow: none; }
.results-panel { min-width: 0; background: rgb(255 255 255 / 91%); }
.discovery-toolbar { display: grid; grid-template-columns: 220px minmax(0,1fr); align-items: end; gap: 12px; padding: 15px 30px; border-bottom: 1px solid var(--line); background: rgb(251 252 251 / 86%); }
.account-toolbar { position: static; width: auto; height: auto; max-width: none; overflow: visible; clip: auto; }
.search-form { grid-template-columns: minmax(220px,1fr) 116px 84px 44px; gap: 10px; }
.search-input-wrap input,.filter-select select,.sort-select select { border-color: var(--line-strong); background: var(--surface); }
.search-submit { min-width: 0; }
.scope-notice { margin: 12px 30px 0; border-radius: 5px; box-shadow: none; }
.results-heading { min-height: 92px; padding: 15px 30px; border-bottom: 1px solid var(--line); }
.browser-nav { margin-bottom: 6px; }
.results-heading h2 { font-size: 16px; }
.table-wrap { min-height: 430px; }
.results-table thead th { height: 40px; padding-inline: 12px; color: var(--text-faint); font-size: 9px; }
.results-table tbody tr { min-height: 72px; transition: background .18s ease; }
.results-table tbody tr:hover { background: #f4f8f5; }
.results-table tbody tr.is-selected { background: var(--surface-accent); }
.results-table td { padding: 12px; }
.results-table td:first-child,.results-table th:first-child { padding-left: 30px; }
.results-table td:last-child,.results-table th:last-child { padding-right: 30px; }
.result-name { font-size: 12px; }
.file-icon { border-radius: 6px; }
.state-block { min-height: 430px; }

.share-panel { position: sticky; top: 82px; align-self: start; min-width: 0; max-height: calc(100vh - 100px); overflow-y: auto; border-left: 1px solid var(--line); background: rgb(244 246 244 / 90%); }
.share-panel-header { min-height: 78px; padding: 0 22px; }
.share-title-icon { display: none; }
.share-panel h2 { font-size: 16px; }
.count-badge { min-width: 27px; height: 27px; border-radius: 5px; }
.share-account { margin: 0 22px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.provider-badge { border-radius: 4px; background: var(--surface); }
.selection-empty { min-height: 250px; border: 0; background: transparent; }
.selection-preview { margin: 16px 22px 0; border-color: var(--line); border-radius: 6px; background: var(--surface); }
.share-form { padding: 18px 22px 22px; }
.segmented-control { gap: 5px; padding: 0; border: 0; background: transparent; }
.segmented-control label span { min-height: 36px; border: 1px solid var(--line); border-radius: 5px; background: var(--surface); }
.segmented-control label input:checked + span { border-color: var(--accent); color: var(--accent-strong); background: var(--surface-accent); box-shadow: none; }
.toggle-row { border-radius: 0; background: transparent; }
.create-share,.share-form .button-wide { min-height: 50px; }
.share-loading,.share-result,.inline-error { margin-inline: 22px; border-radius: 6px; }

.site-footer { width: min(1560px,calc(100% - 40px)); border-color: rgb(170 181 175 / 60%); }

@media (max-width: 1180px) {
  .page-content,.site-footer { width: calc(100% - 24px); }
  .workspace-grid { grid-template-columns: minmax(520px,1fr) 310px; }
  .discovery-toolbar { grid-template-columns: 1fr; padding-inline: 20px; }
  .account-toolbar { max-width: 300px; }
  .search-form { grid-template-columns: minmax(180px,1fr) 108px 80px 44px; }
}

@media (max-width: 940px) {
  .topbar { min-height: 62px; height: 62px; padding: 0 14px; }
  .topbar-inner { grid-template-columns: 1fr auto; }
  .primary-public-nav { position: fixed; z-index: 65; right: 12px; bottom: 12px; left: 12px; justify-content: stretch; box-shadow: 0 14px 40px rgb(25 42 34 / 18%); }
  /* Keep every page's topbar identical below 940px: the donation button collapses
     to an icon and the service status hides; only the theme toggle remains. */
  .topbar .donation-button { width: 38px; min-width: 38px; padding: 0; justify-content: center; }
  .topbar .donation-button span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .topbar-actions .service-status { display: none; }
  .primary-public-nav a { flex: 1; text-align: center; }
  .mobile-share-dock { bottom: 74px; }
  .page-content { width: calc(100% - 16px); padding-top: 12px; }
  .workspace-grid { grid-template-columns: 1fr; }
  .share-panel { position: fixed; z-index: 60; top: 70px; right: 8px; bottom: 82px; left: 8px; display: none; overflow-y: auto; border: 1px solid var(--line); border-radius: 7px; box-shadow: 0 22px 60px rgb(13 28 21 / 24%); }
  .share-panel.is-mobile-open { display: block; }
  .site-footer { width: calc(100% - 24px); padding-bottom: 90px; }
}

@media (max-width: 700px) {
  .topbar-actions .service-status { min-width: 44px; }
  .announcement-bar { padding-inline: 16px; }
  .discovery-toolbar { grid-template-columns: 1fr; padding: 12px 16px; }
  .account-toolbar { max-width: none; }
  .search-form { grid-template-columns: minmax(0,1fr) 92px 44px; gap: 10px; }
  .search-input-wrap { grid-column: 1 / -1; grid-row: 1; }
  .filter-select { grid-column: 1; grid-row: 2; }
  .search-submit { grid-column: 2; grid-row: 2; width: auto; padding: 0 12px; font-size: 13px; }
  .toolbar-secondary { grid-column: 3; grid-row: 2; }
  .scope-notice { margin-inline: 16px; }
  .results-heading { min-height: 78px; padding: 13px 16px; }
  .results-table thead { display: none; }
  .results-table,.results-table tbody { display: block; }
  .results-table tbody tr { display: grid; grid-template-columns: 28px minmax(0,1fr); min-height: 78px; padding: 0 14px; }
  .results-table td { display: none; padding: 12px 0; }
  .results-table .checkbox-cell,.results-table .file-name-cell { display: table-cell; }
  .results-table td:first-child { padding-left: 0; }
  .results-table td:last-child { padding-right: 0; }
  .mobile-share-dock { bottom: 74px; }
}

@media (prefers-reduced-motion: reduce) {
  .results-table tbody tr { transition-duration: .01ms; }
}

/* Footer uptime line: 稳定运行 X 天, rendered by site-footer.js from settings.site.launchDate. */
.site-footer { flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.footer-uptime {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-faint);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.footer-uptime::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 18%, transparent);
  animation: footer-uptime-pulse 2.4s ease-in-out infinite;
}
@keyframes footer-uptime-pulse {
  50% { box-shadow: 0 0 0 7px color-mix(in srgb, var(--brand) 7%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-uptime::before { animation: none; }
}
