/* Source page: shared reading and in-place editing layout. */
.sources-main { --source-control-height:44px; }
.sources-main .sources-hero { gap:20px; align-items:center; margin-block:20px; }
.sources-main .sources-hero h2 { font-size:clamp(26px,3vw,36px); margin:0 0 8px; }
.sources-main .sources-hero p:not(.eyebrow) { max-width:42em; margin:0; line-height:1.75; }
.sources-main .sources-summary { gap:8px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.sources-main .sources-summary>div { padding:12px; min-width:0; border-radius:12px; }
.sources-main .sources-summary dt { font-size:12px; }
.sources-main .sources-summary dd { font-size:24px; }
.sources-main .sources-workspace { padding:clamp(12px,2vw,24px); }
.sources-toolbar:not(.is-controls-collapsed),.site-header>.sources-toolbar:not(.is-controls-collapsed) { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; }
.sources-toolbar:not(.is-controls-collapsed)>.docked-controls-content { display:contents; }
.sources-toolbar .sources-search { grid-column:1; grid-row:1; width:100%; min-height:44px; }
.site-header>.sources-toolbar>.docked-controls-toggle { grid-column:2; grid-row:1; margin:0; width:auto; min-height:44px; height:auto; border-radius:12px; padding:8px 12px; }
.sources-toolbar #sourceFilters { grid-column:1/-1; grid-row:2; justify-content:flex-start; gap:8px 16px; padding:0; }
.sources-toolbar #sourceFilters .source-filter-group { gap:5px; align-items:center; padding:0; border:0; border-radius:0; background:none; width:auto; }
.sources-toolbar #sourceFilters .source-filter-group+.source-filter-group { padding-inline-start:0; border-inline-start:0; }
.sources-toolbar #sourceFilters .source-filter-group::before { color:var(--dim); font-size:11px; margin-inline-end:3px; }
.sources-toolbar #sourceFilters .source-filter-group[aria-label="來源類型"]::before { content:'類型'; }
.sources-toolbar #sourceFilters .source-filter-group[aria-label="整理狀態"]::before { content:'進度'; }
.sources-toolbar #sourceFilters button { min-height:36px; padding:6px 12px; border-radius:9px; white-space:nowrap; }
.sources-toolbar #sourceFilters>[data-source-filter="all"] { margin-inline-start:auto; }
.source-calendar-disclosure { margin:16px 0; border:1px solid var(--line); border-radius:14px; background:var(--card-bg); }
.source-calendar-disclosure>summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:14px 16px; min-height:48px; box-sizing:border-box; list-style:none; cursor:pointer; }
.source-calendar-disclosure>summary::-webkit-details-marker { display:none; }
.source-calendar-disclosure>summary>span:first-child { display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
.source-calendar-disclosure>summary small { color:var(--muted); font-size:12px; }
.source-calendar-disclosure[open]>summary { border-bottom:1px solid var(--line); }
.source-calendar-disclosure[open]>summary>span:last-child { transform:rotate(180deg); }
.sources-main .source-calendar-disclosure .source-calendar-layout { margin:0; gap:16px; padding:16px; }
.sources-main .source-calendar-disclosure .source-calendar { max-width:none; border:0; padding:0; background:transparent; box-shadow:none; }
.sources-main .source-calendar-results { border-radius:12px; padding:16px; }
.sources-main .source-calendar-results ul { max-height:340px; overscroll-behavior:contain; }
.sources-main .sources-browser { grid-template-columns:minmax(220px,270px) minmax(0,1fr); align-items:start; gap:18px; margin-top:18px; }
.sources-main .source-directory { max-height:min(760px,78dvh); border-radius:16px; }
.sources-main .source-directory-heading { padding:14px; align-items:center; flex-wrap:wrap; gap:4px 10px; }
.sources-main .source-directory ol { padding:7px; gap:4px; overscroll-behavior:auto; }
.sources-main .source-directory-item { min-height:64px; padding:10px; gap:8px; }
.sources-main .source-directory-copy strong { white-space:normal; overflow-wrap:anywhere; line-height:1.5; }
.sources-main .source-directory-copy small { font-size:11px; }
.sources-main .source-timeline { padding:clamp(14px,2vw,24px); border-radius:16px; }
.sources-main .source-timeline-header { gap:12px; align-items:flex-start; flex-wrap:wrap; }
.sources-main .source-timeline-header>div { flex:1 1 200px; min-width:0; }
.sources-main .source-timeline-header h2 { font-size:clamp(23px,2.4vw,32px); line-height:1.45; overflow-wrap:anywhere; letter-spacing:.02em; }
.sources-main .source-timeline-header .eyebrow { margin:0 0 6px; font-size:10px; }
.sources-main .source-timeline-status { margin-top:4px; }
.sources-main .source-completion { gap:12px; margin-top:14px; }
.sources-main .source-timeline-actions { margin:14px 0 18px; gap:7px; }
.sources-main .source-timeline-actions :is(a,button) { min-height:38px; font-weight:500; }
.sources-main .source-video-panel { box-shadow:none; border-radius:12px; margin-bottom:20px; }
.sources-main .source-part-heading { flex-wrap:wrap; gap:6px 12px; margin-bottom:10px; }
.sources-main .source-part-heading h3 { font-size:16px; }
.sources-main .source-part-heading>span { font-size:12px; line-height:1.5; }
.sources-main .source-occurrence-list,.sources-main .source-pending-list { gap:8px; }
.sources-main .source-occurrence-list>li,.sources-main .source-pending-list>li { border-radius:12px; }
.sources-main .source-occurrence-song { padding:10px; gap:8px; }
.sources-main .source-occurrence-song strong { white-space:normal; overflow-wrap:anywhere; line-height:1.5; }
.sources-main .source-occurrence-song small { white-space:normal; overflow-wrap:anywhere; line-height:1.5; }
.sources-main .source-title-artist { overflow-wrap:anywhere; }
.sources-main .social-feed { display:grid; gap:16px; }
.sources-main .social-feed-entry { margin:0; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--card-bg); }
.sources-main .social-feed-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding-bottom:12px; border-bottom:1px solid var(--line); line-height:1.6; }
.sources-main .social-feed-meta>span { flex:1 1 180px; min-width:0; overflow-wrap:anywhere; }
.sources-main .social-feed-meta a { overflow-wrap:anywhere; }
.sources-main .social-feed-songs { margin-top:12px; display:grid; gap:8px; }
.sources-main .social-feed-songs .source-occurrence-song { grid-template-columns:auto minmax(0,1fr); align-items:baseline; border-radius:10px; }
.sources-main .social-feed-songs .source-occurrence-song small { grid-column:2; }
.sources-main .social-feed-entry>p { font-size:14px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; }
/* A solid editing surface keeps fields legible over all photo backgrounds. */
.sources-main :is(.source-main-tools,.social-card-editor) { min-width:0; padding:18px; margin:18px 0; border:1px solid var(--line-strong); border-radius:14px; background:var(--menu-bg); color:var(--text); box-shadow:none; }
.sources-main .source-main-tools { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.sources-main .source-editor-heading h3,.sources-main .social-card-editor>h3 { margin:0 0 5px; font-size:18px; }
.sources-main .source-editor-heading p { margin:0; font-size:12px; color:var(--muted); line-height:1.6; }
.sources-main .source-meta-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(130px,.6fr); gap:14px; }
.sources-main .source-meta-grid>[data-source-field="primaryUrl"],.sources-main .source-meta-grid>[data-source-field="location"] { grid-column:1/-1; }
.sources-main :is(.source-meta-grid,.source-row-more,.source-create-inline)>label { display:flex; flex-direction:column; gap:6px; min-width:0; margin:0; font-size:12px; color:var(--muted); }
.sources-main :is(.source-main-tools,.source-row-more,.social-card-editor) :is(input,select,textarea) { box-sizing:border-box; width:100%; max-width:100%; min-width:0; min-height:44px; border:1px solid var(--line-strong); border-radius:9px; background:var(--search-bg); color:var(--text); padding:9px 11px; font:inherit; font-size:14px; line-height:1.5; }
.sources-main :is(.source-main-tools,.source-row-more,.social-card-editor) textarea { resize:vertical; min-height:84px; }
.sources-main :is(.source-main-tools,.source-row-more,.social-card-editor) :is(input,textarea)::placeholder { color:var(--muted); opacity:.8; }
.sources-main .source-main-add,.sources-main .social-song-add { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; padding-top:16px; margin:0; border-top:1px solid var(--line); }
.sources-main .source-main-add>h4 { grid-column:1/-1; margin:0 0 4px; font-size:14px; }
.sources-main :is(.source-main-add,.social-song-add)>input { grid-column:1/-1; }
.sources-main :is(.source-main-add,.social-song-add)>select { grid-column:1; }
.sources-main :is(.source-main-add,.social-song-add)>.new-song-entry { grid-column:1/-1; margin-top:0; justify-self:start; }
.sources-main .source-history { padding-top:12px; border-top:1px solid var(--line); font-size:12px; }
.sources-main .source-history>summary { min-height:36px; padding-block:6px; cursor:pointer; color:var(--muted); }
.sources-main .source-history-entry { margin-top:10px; padding:10px; border:1px solid var(--line); border-radius:9px; overflow-wrap:anywhere; }
.sources-main .source-history-entry li { line-height:1.6; }
.sources-main .source-quick-row>.source-occurrence-song { grid-template-columns:minmax(0,1fr); }
.sources-main .source-quick-row>.source-occurrence-song>.source-occurrence-index { display:none; }
.sources-main .source-quick-row>.source-occurrence-song>span:nth-child(2) { grid-column:1; }
.sources-main .source-quick-field { width:88px; padding-block:6px; }
.sources-main .source-quick-field span { color:var(--muted); font-size:10px; opacity:1; }
.sources-main .source-quick-field input { background:var(--search-bg); color:var(--text); border-color:var(--line-strong); font-size:14px; text-align:center; }
.sources-main .source-occurrence-list>li.source-quick-row,.sources-main .source-pending-list>li.source-quick-row { grid-template-columns:88px minmax(0,1fr) 48px; gap:8px; padding:8px; }
.sources-main .source-row-toggle { background:var(--surface-soft); color:var(--text); min-height:40px; font-size:12px; }
.sources-main .source-row-more { grid-template-columns:repeat(2,minmax(0,1fr)); background:var(--menu-bg); padding:14px; gap:12px; }
.sources-main .source-row-more>[data-source-field="url"],.sources-main .source-row-more>[data-source-field="note"] { grid-column:1/-1; }
.sources-main .source-row-actions { gap:8px; padding-top:10px; }
.sources-main .source-added-group { margin-top:20px; padding:14px; border:1px dashed var(--line-strong); border-radius:12px; background:var(--gold-soft); }
.sources-main .source-added-group h3 { margin:0 0 12px; font-size:15px; }
.sources-main .source-quick-save,.sources-main .social-editor-actions { position:sticky; bottom:max(12px,var(--player-control-clearance,0px),env(safe-area-inset-bottom)); z-index:15; display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; padding:12px; margin:16px 0 0; border:1px solid var(--line-strong); border-radius:12px; background:var(--menu-bg); box-shadow:0 4px 20px #0002; }
.sources-main .source-quick-save>span,.sources-main .social-save-status { flex:1 1 180px; min-width:0; margin:0; font-size:12px; line-height:1.6; color:var(--muted); overflow-wrap:anywhere; }
.sources-main :is(.source-quick-save,.social-editor-actions,.source-create-actions)>button { min-height:44px; padding:9px 14px; border:1px solid var(--line); border-radius:10px; background:var(--surface-soft); color:var(--text); font:inherit; font-size:13px; cursor:pointer; }
.sources-main .source-quick-save>.source-save-primary,.sources-main .source-save-primary,.sources-main .social-card-editor .source-save-primary,.sources-main .source-create-actions .source-save-primary { background:var(--gold); border-color:var(--gold); color:var(--bg); font-weight:700; }
.sources-main button:disabled { opacity:.45; cursor:default; }
.sources-main .source-create-top { margin-bottom:14px; }
.sources-main .source-create-top button { background:var(--gold-soft); color:var(--text); }
.sources-main .source-create-inline { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sources-main .source-create-inline>label { grid-column:auto; }
.sources-main .source-create-inline>label:has(input[type="url"]),.sources-main .source-create-actions { grid-column:1/-1; }
.sources-main .source-create-actions { display:flex; justify-content:flex-end; gap:8px; }
.sources-main .source-form-section { padding-top:16px; margin-top:16px; border-top:1px solid var(--line); }
.sources-main .source-form-section>h4 { margin:0 0 12px; font-size:14px; }
.sources-main .social-editor-meta { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sources-main .social-card-editor label { margin:0; gap:6px; font-size:12px; color:var(--muted); }
.sources-main .source-form-section>.social-editor-meta+label { margin-top:12px; }
.sources-main .social-content-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.sources-main .social-content-fields>h4 { grid-column:1/-1; margin:0; }
.sources-main .social-card-editor .social-song-add { border-top:0; padding:0; }
.sources-main .social-edit-song { background:var(--card-bg); padding:12px; margin:10px 0 0; }
.sources-main .social-edit-song-top { gap:12px; }
.sources-main .social-edit-song-top strong { min-width:0; overflow-wrap:anywhere; font-size:14px; line-height:1.5; }
.sources-main .social-edit-song-top button { flex-shrink:0; font-size:12px; }
.sources-main .social-edit-song-more { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.sources-main .social-edit-song-more>label:has(input[type="url"]),.sources-main .social-edit-song-more>label:has(textarea) { grid-column:1/-1; }
.sources-main .social-edit-song-more>button { grid-column:1/-1; justify-self:end; background:transparent; color:var(--muted); }
.sources-main .social-edit-song>label { margin-top:12px; }
.sources-main :is(button,a,summary,input,select,textarea):focus-visible,.sources-toolbar :is(button,input):focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
@media(min-width:1100px) {
 .sources-main .source-calendar-disclosure .source-calendar-layout { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
 .sources-main .social-editor-meta { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:920px) {
 .sources-main .sources-browser { grid-template-columns:minmax(0,1fr); }
 .sources-main .source-directory { max-height:300px; }
 .sources-main .sources-hero { grid-template-columns:minmax(0,1fr); gap:16px; }
}
@media(max-width:620px) {
 .sources-main .sources-workspace { padding:10px; border-radius:16px; }
 .sources-main .sources-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .sources-toolbar #sourceFilters { gap:8px; }
 .sources-toolbar #sourceFilters .source-filter-group { flex:1 1 100%; flex-wrap:wrap; }
 .sources-toolbar #sourceFilters .source-filter-group button { flex:0 1 auto; padding-inline:10px; }
 .sources-toolbar #sourceFilters>[data-source-filter="all"] { margin:0; }
 .sources-main .source-calendar-disclosure .source-calendar-layout { padding:12px; grid-template-columns:minmax(0,1fr); }
 .source-calendar-disclosure>summary { padding:12px; }
 .source-calendar-disclosure>summary>span:first-child { gap:4px 12px; }
 .sources-main .source-calendar-results { padding:12px; }
 .sources-main .source-directory { max-height:240px; }
 .sources-main .source-timeline { padding:12px; }
 .sources-main .source-timeline-header h2 { font-size:24px; }
 .sources-main .source-completion { grid-template-columns:minmax(0,1fr); gap:6px; }
 .sources-main .source-part-heading>span { flex-basis:100%; }
 .sources-main .source-occurrence-song { padding:8px; gap:6px; }
 .sources-main :is(.source-main-tools,.social-card-editor) { padding:12px; border-radius:12px; }
 .sources-main :is(.source-meta-grid,.source-create-inline,.social-editor-meta,.social-content-fields,.social-edit-song-more,.source-row-more) { grid-template-columns:minmax(0,1fr); }
 .sources-main .source-main-add,.sources-main .social-song-add { grid-template-columns:minmax(0,1fr); }
 .sources-main :is(.source-main-add,.social-song-add)>button { grid-column:1; }
 .sources-main :is(.source-main-tools,.source-row-more,.social-card-editor) :is(input,select,textarea) { font-size:16px; }
 .sources-main .source-occurrence-list>li.source-quick-row,.sources-main .source-pending-list>li.source-quick-row { grid-template-columns:68px minmax(0,1fr) 44px; gap:4px; padding:6px; }
 .sources-main .source-quick-field { width:68px; }
 .sources-main .source-quick-field input { font-size:16px; padding-inline:3px; }
 .sources-main .source-quick-row .source-occurrence-song { padding-inline:4px; }
 .sources-main .source-row-more { padding:10px; }
 .sources-main .source-quick-save,.sources-main .social-editor-actions { padding:10px; gap:6px; }
 .sources-main .source-quick-save>span,.sources-main .social-save-status { flex-basis:100%; }
 .sources-main .source-quick-save>button,.sources-main .social-editor-actions>button { flex:1 1 auto; font-size:12px; padding-inline:8px; }
 .sources-main .source-added-group,.sources-main .social-feed-entry { padding:10px; }
}

/* Reserve a separate right-hand lane for the fixed back-to-top control. */
.sources-main :is(.source-quick-save,.social-editor-actions){box-sizing:border-box;min-width:0;margin-inline-end:124px;max-width:calc(100% - 124px)}
.sources-main :is(.source-quick-save,.social-editor-actions)>button{max-width:100%;white-space:normal;overflow-wrap:anywhere}
@media(max-width:620px){
 .sources-main :is(.source-quick-save,.social-editor-actions){margin-inline-end:76px;max-width:calc(100% - 76px)}
}

/* Keep the optional audit panel compact even for a large catalogue. */
.sources-main #sourceIntegrity .source-integrity-results{max-height:min(400px,45dvh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:6px}
.sources-main #sourceIntegrity .source-integrity-results article{padding:10px 12px;margin:0 0 8px;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}
.sources-main #sourceIntegrity .source-integrity-results article strong{font-size:13px;line-height:1.5}
.sources-main #sourceIntegrity .source-integrity-results article p{margin:4px 0;font-size:12px;line-height:1.5}
.sources-main #sourceIntegrity .source-integrity-results article a{display:inline-flex;align-items:center;min-height:36px;font-size:12px}
.sources-main #sourceIntegrity .source-integrity-pagination:not(.shared-pagination){display:flex;align-items:center;justify-content:space-between;gap:8px;margin:10px 0;font-size:12px}
.sources-main #sourceIntegrity .source-integrity-pagination:not(.shared-pagination)[hidden]{display:none}
.sources-main #sourceIntegrity .source-integrity-pagination:not(.shared-pagination) button{min-height:44px;flex-shrink:0}
.sources-main #sourceIntegrity .source-filter-chips{display:flex;flex-wrap:wrap;gap:6px}

/* Public timestamp coverage, independent of the current search filters. */
.sources-main .source-overall-progress{margin:0 0 20px;padding:20px 24px;border:1px solid var(--line-strong);border-radius:16px;background:var(--menu-bg);color:var(--text)}
.source-progress-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.source-progress-heading h3{margin:0;font-size:18px}
.source-progress-heading p{margin:6px 0 0;font-size:13px;line-height:1.6;color:var(--muted)}
.source-progress-heading>strong{font-size:clamp(32px,5vw,48px);line-height:1.2;color:var(--gold);white-space:nowrap;font-variant-numeric:tabular-nums}
.source-overall-progress progress{display:block;width:100%;height:12px;margin:16px 0 10px;border:0;border-radius:20px;overflow:hidden;appearance:none;background:var(--surface-soft)}
.source-overall-progress progress::-webkit-progress-bar{background:var(--surface-soft);border-radius:20px}
.source-overall-progress progress::-webkit-progress-value{background:var(--gold);border-radius:20px}
.source-overall-progress progress::-moz-progress-bar{background:var(--gold);border-radius:20px}
.source-overall-progress>small{display:block;font-size:11px;line-height:1.6;color:var(--muted)}
@media(max-width:620px){.sources-main .source-overall-progress{padding:16px}.source-progress-heading{gap:10px}.source-progress-heading h3{font-size:16px}}

/* Activity-first source browsing. */
.sources-main .sources-hero{display:flex;justify-content:space-between;align-items:flex-start;margin:14px 0;gap:16px}
.sources-main .sources-hero .eyebrow,.sources-main .sources-hero>div>p:not(.eyebrow){display:none}
.sources-main .sources-hero h2{margin:0;font-size:28px}
.sources-main .source-statistics{max-width:100%;font-size:12px}
.source-statistics>summary{cursor:pointer;padding:10px}
.sources-main .source-statistics .sources-summary{margin-top:8px}
.sources-main .source-overall-progress{padding:12px 16px;margin-bottom:14px;border-radius:12px}
.source-overall-progress .source-progress-heading h3{font-size:14px}
.source-overall-progress .source-progress-heading>strong{font-size:28px}
.source-overall-progress .source-progress-heading p{font-size:12px;margin-top:3px}
.source-overall-progress progress{height:7px;margin:8px 0 5px}
.sources-main .sources-toolbar{display:grid;grid-template-columns:1fr;gap:10px}
.sources-main .sources-toolbar #sourceFilters{display:flex;flex-wrap:wrap;grid-column:1;grid-row:2;gap:8px;align-items:center}
.sources-main .sources-toolbar #sourceFilters .source-filter-group::before{display:none}
.sources-main .sources-toolbar #sourceFilters .source-filter-group{flex:0 1 auto;flex-wrap:wrap}
.source-status-filter{margin-left:auto;position:relative;font-size:12px}
.source-status-filter>summary{cursor:pointer;padding:10px;border:1px solid var(--line);border-radius:9px}
.sources-main .source-status-filter[open]>.source-filter-group{position:static;display:flex;flex-wrap:wrap;width:100%;max-width:100%;box-sizing:border-box;gap:6px;padding:8px 0 0;background:none;border:0;box-shadow:none}
.source-view-switch{display:flex;gap:6px;margin:16px 0 10px}
.source-view-switch button,.source-back-directory{min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--menu-bg);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.source-view-switch [aria-pressed=true]{background:var(--gold-soft);border-color:var(--gold)}
.sources-main .source-calendar-disclosure[hidden]{display:none}
.source-calendar-disclosure>summary{display:none}
.sources-main .is-calendar-view .sources-browser{display:none}
.sources-main .sources-browser{grid-template-columns:minmax(250px,320px) minmax(0,1fr);gap:20px;margin-top:0}
.sources-main .source-directory{max-height:75dvh}
.sources-main .source-month-heading{list-style:none;padding:12px 10px 4px;border:0;background:transparent}
.source-month-heading h4{font-size:12px;color:var(--muted);margin:0;letter-spacing:.06em}
.sources-main .source-directory-item{min-height:64px;border-radius:10px}
.source-detail-pane{min-width:0}
.source-back-directory{display:inline-flex;margin:0 0 12px}
.source-management{display:none;margin-bottom:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--menu-bg)}
.source-management:has(#sourceIntegrity){display:block}
.source-management>summary{cursor:pointer;font-size:13px;font-weight:600;min-height:30px}
.sources-main details.source-main-tools:not([open])>:not(summary){display:none}
.sources-main details.source-main-tools{display:block;padding:12px}
.sources-main details.source-main-tools>summary{cursor:pointer;font-size:13px;font-weight:600;min-height:24px}
.sources-main details.source-main-tools[open]>summary{margin-bottom:16px}
.sources-main details.source-main-tools .source-editor-heading{display:none}
.sources-main details.source-main-tools .source-main-add{margin-top:16px}
@media(max-width:920px){
 .sources-main .sources-browser{grid-template-columns:minmax(0,1fr)}
 .sources-main .source-directory{max-height:none}
 .sources-main .source-directory ol{max-height:none;overflow:visible}
 .sources-main .source-detail-pane{display:none}
 .sources-main .is-showing-source .source-detail-pane{display:block}
 .sources-main .is-showing-source .source-directory,.sources-main .is-showing-source>.source-view-switch{display:none}
 .sources-main .sources-hero{align-items:center}
 .sources-main .source-statistics[open]{flex:1 1 100%}
 .sources-main .sources-hero{flex-wrap:wrap}
}

.source-dot[data-source-kind="event"]{background:#a763af}

/* Distinct month dividers in the source directory. */
.sources-main #sourceList>.source-month-heading{margin:22px 2px 8px;padding:13px 14px;list-style:none;border:1px solid var(--line-strong);border-inline-start:5px solid var(--gold);border-radius:9px;background:var(--menu-bg);background-image:linear-gradient(var(--gold-soft),var(--gold-soft));box-shadow:0 2px 5px #00000008}
.sources-main #sourceList>.source-month-heading:first-child{margin-top:2px}
.sources-main #sourceList>.source-month-heading h4{margin:0;font-size:16px;font-weight:800;line-height:1.5;letter-spacing:.06em;color:var(--text)}
@media(max-width:620px){.sources-main #sourceList>.source-month-heading{margin-top:26px;padding:12px 14px}.sources-main #sourceList>.source-month-heading:first-child{margin-top:2px}}

/* Filter choices expand in normal flow so they cannot cover the directory. */
.sources-main .sources-toolbar #sourceFilters{width:100%;align-items:flex-start;gap:8px}
.sources-main .sources-toolbar #sourceFilters>.source-filter-group{flex:1 1 100%;gap:6px}
.sources-main .source-status-filter{flex:1 1 100%;min-width:0;margin:0}
.sources-main .source-status-filter>summary{box-sizing:border-box;width:fit-content;min-height:40px;padding:9px 12px;font-size:12px;line-height:20px}
.sources-main .source-status-filter:not([open])>.source-filter-group{display:none}
.sources-main .sources-toolbar #sourceFilters .source-status-filter button{flex:0 1 auto;min-height:40px;margin:0}
.sources-main .sources-toolbar{padding-block:6px 10px}
.sources-main .source-view-switch{margin:10px 0}
@media(max-width:620px){
 .sources-main .sources-toolbar #sourceFilters>.source-filter-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
 .sources-main .sources-toolbar #sourceFilters>.source-filter-group>button{min-width:0;min-height:40px;padding:6px;font-size:12px;white-space:normal}
 .sources-main .source-status-filter[open]>.source-filter-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .sources-main .sources-toolbar #sourceFilters .source-status-filter button{min-width:0;white-space:normal;padding:6px;font-size:12px}
}

/* One compact overview contains the heading, public progress and optional statistics. */
.sources-main .sources-hero{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:20px 24px;margin:14px 0;align-items:stretch}
.sources-main .sources-hero>div{min-width:0}
.sources-main .sources-hero h2{font-size:26px;margin:0}
.sources-main .sources-hero .source-overall-progress{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
.sources-main .sources-hero .source-statistics{width:100%;max-width:none;border-top:1px solid var(--line);padding-top:4px}
.sources-main .sources-hero .source-statistics>summary{padding:6px 0;min-height:32px;box-sizing:border-box;text-align:right;font-size:12px;cursor:pointer}
.sources-main .sources-hero .source-statistics .sources-summary{grid-template-columns:repeat(4,minmax(0,1fr));margin:8px 0 0;gap:8px;width:100%}
.sources-main .sources-hero .sources-summary>div{padding:10px 12px}
.sources-main .sources-hero .sources-summary dd{font-size:22px}
@media(max-width:620px){.sources-main .sources-hero{padding:16px;gap:10px}.sources-main .sources-hero .source-statistics .sources-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v4.62.102: unified compact source song rows. */
.sources-main :is(.source-occurrence-list,.source-pending-list)>li.source-compact-song-row{grid-template-columns:112px minmax(0,1fr) 40px;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--moment-border,var(--line));border-radius:14px;background:var(--moment-bg,var(--surface-soft));box-shadow:none}
.sources-main .source-compact-song-row>.source-occurrence-song{border:0;border-radius:0;background:transparent;box-shadow:none;padding:4px 0;min-height:48px;min-width:0}
.sources-main .source-compact-song-row>.source-occurrence-song:hover{background:transparent;transform:none}
.sources-main .source-compact-song-row>.source-quick-field{width:112px;padding:0 12px 0 0;border-right:1px solid var(--line);box-sizing:border-box}
.sources-main .source-compact-song-row>.source-quick-field>span{display:none}
.sources-main .source-compact-song-row>.source-quick-field input{background:transparent;border:1px solid transparent;border-radius:7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;padding:6px 2px;min-height:40px}
.sources-main .source-compact-song-row>.source-quick-field input:hover{background:var(--search-bg)}
.sources-main .source-compact-song-row>.source-quick-field input:focus{background:var(--search-bg);border-color:var(--line-strong);outline:2px solid var(--gold);outline-offset:2px}
.sources-main .source-compact-song-row .source-occurrence-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 9px;line-height:1.45}
.sources-main .source-compact-song-row .source-song-number{font-size:12px;font-weight:400;color:var(--muted)}
.sources-main .source-compact-song-row .source-occurrence-title strong{font-size:17px;color:var(--text)}
.sources-main .source-compact-song-row .source-title-artist{font-size:13px;font-weight:400;color:var(--muted)}
.sources-main .source-compact-song-row .source-occurrence-song small{display:block;margin-top:4px;font-size:12px;color:var(--muted);line-height:1.5}
.sources-main .source-compact-song-row>.source-row-toggle{position:relative;width:40px;min-width:40px;min-height:44px;padding:0;border:0;background:transparent;font-size:0;box-shadow:none}
.sources-main .source-compact-song-row>.source-row-toggle:after{content:'';display:block;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin:0 auto 5px;transition:transform .15s}
.sources-main .source-compact-song-row>.source-row-toggle[aria-expanded=true]:after{transform:rotate(225deg);margin-bottom:-5px}
.sources-main .source-compact-song-row>.source-row-toggle:focus-visible,.sources-main .source-compact-song-row>.source-occurrence-song:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
@media(max-width:600px){.sources-main :is(.source-occurrence-list,.source-pending-list)>li.source-compact-song-row{grid-template-columns:88px minmax(0,1fr) 32px;gap:8px;padding:9px 8px}.sources-main .source-compact-song-row>.source-quick-field{width:88px;padding-right:6px}.sources-main .source-compact-song-row>.source-quick-field input{font-size:12px}.sources-main .source-compact-song-row>.source-row-toggle{width:32px;min-width:32px}.sources-main .source-compact-song-row .source-occurrence-title strong{font-size:16px}.sources-main .source-compact-song-row .source-title-artist{font-size:12px}}

/* v4.62.102: visitors share the compact source song design. */
.sources-main :is(.source-occurrence-list,.source-pending-list)>li[data-source-row-id]:not(.source-moment):not(.source-quick-row){display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft);box-shadow:none}
.sources-main :is(.source-occurrence-list,.source-pending-list)>li[data-source-row-id]:not(.source-moment):not(.source-quick-row):not(:has(>.source-occurrence-time)){grid-template-columns:minmax(0,1fr)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-time{box-sizing:border-box;align-self:center;min-height:44px;padding:4px 10px 4px 0;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:13px;font-weight:500;gap:5px;color:var(--muted);transform:none}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-time>span{font-size:9px}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-time.is-active{color:var(--gold);font-weight:700;background:transparent;box-shadow:none}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row):has(>.source-occurrence-time.is-active){border-color:var(--line-strong);box-shadow:inset 3px 0 0 var(--gold)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-song{grid-template-columns:minmax(0,1fr) 20px;min-height:48px;padding:4px 0;gap:8px;border:0;border-radius:0;background:transparent;box-shadow:none;transform:none}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-song>.source-occurrence-index{display:none}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-song>span:nth-child(2){grid-column:1;min-width:0}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-occurrence-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 9px;line-height:1.45}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-song-number{font-size:12px;font-weight:400;color:var(--muted)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-occurrence-title strong{font-size:17px;color:var(--text)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-title-artist{font-size:13px;font-weight:400;color:var(--muted)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-occurrence-song small{display:block;margin-top:3px;font-size:12px;line-height:1.5;color:var(--muted)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-song>b{font-size:0}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-song>b:after{content:'';display:block;width:7px;height:7px;border-right:1.5px solid var(--muted);border-top:1.5px solid var(--muted);transform:rotate(45deg)}
.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>:is(a,button):focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:5px}
@media(max-width:600px){.sources-main :is(.source-occurrence-list,.source-pending-list)>li[data-source-row-id]:not(.source-moment):not(.source-quick-row){grid-template-columns:88px minmax(0,1fr);gap:8px;padding:9px 10px}.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row)>.source-occurrence-time{font-size:12px;padding-right:6px;gap:3px}.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-occurrence-title strong{font-size:16px}.sources-main li[data-source-row-id]:not(.source-moment):not(.source-quick-row) .source-title-artist{font-size:12px}}

/* Publication blocks share the source page's typography and controls. */
.sources-main :is(.source-publications,.source-related){margin-block:18px;padding-top:16px;border-color:var(--line);min-width:0;color:var(--text);font-size:14px;line-height:1.65}
.sources-main :is(.source-publications,.source-related)>h3{margin:0 0 12px;font-size:16px;line-height:1.5;color:var(--text)}
.sources-main .source-publications>details{margin:8px 0;padding:0 12px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.sources-main .source-publications>details:not([open]){padding-bottom:0}
.sources-main .source-publications summary{box-sizing:border-box;min-height:44px;padding:10px 0;font-size:13px;font-weight:600;color:var(--muted);overflow-wrap:anywhere;cursor:pointer}
.sources-main .publication-caption{margin:4px 0 12px;font-size:14px;line-height:1.75}
.sources-main .publication-song-reference{margin:10px 0;padding:8px 10px;border-left:2px solid var(--line-strong);border-radius:0 8px 8px 0;background:var(--gold-soft);font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.sources-main .publication-song-reference>a,.sources-main .publication-song-reference>a:visited{display:inline-block;padding:2px 8px;border:1px solid var(--line-strong);border-radius:8px;color:var(--gold);background:var(--surface-soft);font-size:13px;font-weight:600;line-height:1.65;text-decoration:none}
.sources-main .publication-song-reference>span{display:block;margin-top:5px;font-size:13px;line-height:1.65;color:var(--muted)}
.sources-main .publication-song-reference>br{display:none}
.sources-main .source-publications details>a,.sources-main .source-publications details>a:visited{display:inline-flex;align-items:center;min-height:36px;color:var(--muted);font-size:12px;text-decoration:none}
.sources-main .source-related>article{margin:8px 0;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft)}
.sources-main .source-related h4{margin:0 0 6px;font-size:15px;line-height:1.6}
.sources-main .source-related h4>a,.sources-main .source-related h4>a:visited{display:block;color:var(--text);text-decoration:none;overflow-wrap:anywhere}
.sources-main .source-related article>p{margin:6px 0 0;font-size:12px;line-height:1.8;color:var(--muted)}
.sources-main .source-related p>a,.sources-main .source-related p>a:visited{color:var(--gold);text-decoration:none}
.sources-main .source-related [data-source-timestamp]{appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:9px;background:var(--gold-soft);color:var(--gold);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;font-weight:500;line-height:1.4;vertical-align:middle;cursor:pointer;box-shadow:none}
.sources-main .source-related [data-source-timestamp]:is(:hover,.is-active){background:var(--gold-soft);border-color:var(--gold)}
.sources-main :is(.source-publications,.source-related) a:hover{color:var(--gold);text-decoration:underline;text-underline-offset:3px}
.sources-main :is(.source-publications,.source-related) :is(a,button,summary):focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.source-dot[data-source-kind="cover"]{background:#bf7435}
.source-cover-song{margin-block:1.5rem;padding-block:1rem;border-top:1px solid var(--line, #c5b9a5)}
.source-cover-song>div{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.source-cover-song .source-occurrence-song{flex:1;min-width:0}
.source-cover-jump{padding:.65rem 1rem;white-space:nowrap}

.sources-main .source-policy-link { font-size:.875rem; color:inherit; text-underline-offset:.2em; padding:6px 0; }

/* Stacked calendars use document scrolling so results never end in a clipped card. */
@media(max-width:1099px){
 .sources-main .source-calendar-results ul{max-height:none;overflow:visible;overscroll-behavior:auto}
}

/* Keep social post identity and caption on separate lines in calendar results. */
.source-calendar-title-copy{display:grid;gap:4px;min-width:0;flex:1}
.source-calendar-caption{font-weight:400;line-height:1.5;overflow-wrap:anywhere}

/* Keep replay and external playback controls together without squeezing status. */
.source-video-panel .source-video-footer{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px}
.source-video-panel .source-video-footer .source-video-status{flex:0 0 100%;width:100%;min-width:0}
.source-video-footer [data-source-player-replay]{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--gold-soft);color:var(--gold);font:inherit;font-weight:700;cursor:pointer;flex:0 0 auto}
.source-video-footer [data-source-player-replay]:disabled{opacity:.55;cursor:wait}
.source-video-footer [data-source-player-replay]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.source-video-footer [data-source-player-replay],.source-video-footer [data-source-player-external]{box-sizing:border-box;min-height:44px;padding:8px 12px;font-size:13px;font-weight:800;line-height:1.3}

.source-video-panel .source-video-footer :is([data-source-player-replay],[data-source-player-external]){flex:0 0 auto;width:auto;max-width:100%;margin:0;white-space:nowrap}

.source-video-panel .source-player-step-row{display:flex;flex:0 0 100%;width:100%;gap:8px;flex-wrap:wrap}
.source-video-panel .source-player-step-row button{box-sizing:border-box;flex:0 0 auto;width:auto;min-height:44px;margin:0;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--gold-soft);color:var(--gold);font:inherit;font-size:13px;font-weight:800;line-height:1.3;cursor:pointer}
.source-video-panel .source-player-step-row button:disabled{opacity:.55;cursor:wait}
.source-video-panel .source-player-step-row button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.source-classification-dialog{max-width:760px;width:calc(100% - 32px);max-height:85dvh;overflow:auto;background:var(--paper,#fffaf0);color:var(--ink,#403020);border:1px solid var(--line,#d6cbb9);border-radius:20px;padding:24px}.source-classification-row{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line,#d6cbb9)}.source-classification-row>span{display:grid;gap:5px}.source-classification-row input{width:20px;height:20px;flex-shrink:0}.source-classification-dialog button,[data-source-video-toggle]{font:inherit;padding:10px 16px;min-height:44px;border-radius:12px;border:1px solid var(--line,#d6cbb9);background:var(--paper,#fffaf0);color:inherit;margin:8px 8px 0 0}.source-meta-grid [hidden],.source-create-inline [hidden]{display:none!important}

/* Source metadata edits retain the existing draft while the modal is closed. */
.sources-main .source-metadata-dialog{box-sizing:border-box;width:min(680px,calc(100% - 24px));max-height:calc(100dvh - 32px);margin:auto;padding:24px;overflow:auto;overscroll-behavior:contain;border:1px solid var(--line-strong);border-radius:20px;background:var(--paper,#fffaf0);color:var(--text);box-shadow:0 20px 60px #0003}
.sources-main .source-metadata-dialog:not([open]){display:none}
.source-metadata-dialog::backdrop{background:rgb(0 0 0 / 42%)}
.sources-main details.source-main-tools .source-metadata-dialog .source-editor-heading{display:block}
.source-metadata-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}
.source-metadata-header .source-editor-heading{flex:1;min-width:0}
.source-metadata-header h3{margin:0 0 8px;font-size:24px}
.source-metadata-header p{margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.sources-main .source-metadata-close,.sources-main .source-main-tools>button{font:inherit;min-height:44px;padding:10px 16px;border:1px solid var(--line-strong);border-radius:12px;background:var(--search-bg);color:var(--text);cursor:pointer}
.source-metadata-close{flex-shrink:0}
@media(max-width:600px){.sources-main .source-metadata-dialog{padding:18px}.source-metadata-header{gap:10px}}

/* Inline source controls now live exclusively in dialogs opened by the save menu. */
.sources-main .source-main-tools.source-modal-tools{display:contents}
.sources-main .source-modal-tools .source-editor-heading{display:block}
.sources-main #sourceTimeline>.source-record-share-hint,.sources-main #sourceTimeline>.source-completion{display:none}
.source-add-dialog .source-metadata-header h4{flex:1;margin:0;font-size:24px}
.source-add-dialog>p{color:var(--muted);line-height:1.7}
.source-add-dialog .source-main-add{margin-top:16px}
.sources-main .source-add-dialog.source-dialog-compact{padding:12px}
.source-add-dialog.source-dialog-compact .source-metadata-header{margin-bottom:8px;align-items:center}
.source-add-dialog.source-dialog-compact .source-metadata-header h4{font-size:20px}
.source-add-dialog.source-dialog-compact>p{display:none}
.source-add-dialog.source-dialog-compact .source-main-add{margin-top:0;padding-top:8px;gap:8px}

.source-copy-menu>button.source-copy-remove{border-top:1px solid var(--line);color:var(--danger,#a13b30)}

/* Compact status dropdown: only the options panel is an opaque surface. */
.sources-main .sources-toolbar #sourceFilters>.source-status-filter{flex:0 0 auto;width:fit-content;max-width:100%;position:relative;margin:0;background:transparent}
.sources-main .sources-toolbar #sourceFilters>.source-status-filter[open]{z-index:30}
.sources-main .sources-toolbar #sourceFilters>.source-status-filter[open]>.source-filter-group{position:absolute;inset-inline-start:0;top:calc(100% + 6px);display:grid;grid-template-columns:minmax(0,1fr);width:180px;max-width:calc(100vw - 48px);gap:4px;padding:6px;border:1px solid var(--line);border-radius:12px;background:var(--opaque-popup-bg,#fffaf0);box-shadow:0 8px 24px #0002;box-sizing:border-box}
.sources-main .sources-toolbar #sourceFilters>.source-status-filter>.source-filter-group::before{content:none}
.sources-main .sources-toolbar #sourceFilters>.source-status-filter>.source-filter-group>button{width:100%;min-height:44px;text-align:start;padding:8px 12px;white-space:nowrap}

/* Keep seven narrow date columns while retaining readable holiday labels. */
.source-calendar-grid>button{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:66px}
.source-calendar-holiday{display:block;box-sizing:border-box;width:100%;padding:0 2px;font-size:10px;line-height:1.35;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:normal;color:inherit;font-weight:600}
.source-calendar-grid>button .source-date-dots{margin-top:auto;padding-top:4px}
.source-calendar-holiday-detail{padding:10px 12px;border:1px solid currentColor;border-radius:10px;margin:12px 0;overflow-wrap:anywhere}
.source-calendar-holiday-note{font-size:12px;line-height:1.6;opacity:.8;margin:12px 0}
.source-calendar-holiday-note a{margin-left:.5em}.source-calendar-holiday-note strong{display:block}

.source-calendar-day-number{display:inline-flex;align-items:center;justify-content:center;gap:2px;flex-wrap:wrap}
.source-calendar-today-label{display:inline-block;padding:1px 3px;border-radius:4px;background:#a65022;color:#fff;font-size:9px;line-height:1.4;font-weight:700}
.source-calendar-grid>button[aria-current="date"]{opacity:1;border-color:#a65022}

.source-live-preview{grid-column:1/-1;display:grid;gap:12px;border:1px solid var(--line);border-radius:var(--ui-radius-control);padding:16px;min-width:0}.source-live-preview[hidden]{display:none}.source-live-preview p{font-size:13px;color:var(--muted);line-height:1.7}.source-live-preview input[type="checkbox"]{width:auto}

/* Compact directory rhythm: month labels separate records without large cards. */
.sources-main #sourceList{gap:8px}
.sources-main #sourceList>.source-month-heading{margin:12px 0 0;padding:6px 10px;border:0;border-inline-start:3px solid var(--gold);border-radius:0;background:transparent;background-image:none;box-shadow:none}
.sources-main #sourceList>.source-month-heading:first-child{margin-top:0}
.sources-main #sourceList>.source-month-heading h4{font-size:14px;line-height:1.5}
.sources-main .source-directory-item{padding:10px 12px;margin:0;min-height:0;gap:6px 12px}
.sources-main .source-directory-copy{gap:3px}
.sources-main .source-directory-arrow{grid-row:1;align-self:center}

/* 4.90.163: quick replay URL entry */
.source-replay-entry{display:none}
.source-edit-screen .source-replay-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px 12px;margin:18px 0;padding:18px;border:1px solid var(--line-strong);border-radius:16px;background:var(--menu-bg);color:var(--text)}
.source-replay-entry label{display:grid;gap:8px;min-width:0;font-size:14px;font-weight:600}
.source-replay-entry input{box-sizing:border-box;width:100%;min-width:0;min-height:46px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--bg);color:var(--text);font:inherit;font-size:16px}
.source-replay-entry button{min-height:46px;padding:10px 16px;border:1px solid var(--gold);border-radius:10px;background:var(--gold-soft);color:var(--text);font:inherit;font-weight:600;cursor:pointer}
.source-replay-entry .source-replay-status{grid-column:1/-1;margin:0;color:var(--muted);font-size:13px;line-height:1.6}
.source-replay-entry :disabled{opacity:.6;cursor:wait}
@media(max-width:480px){.source-edit-screen .source-replay-entry{grid-template-columns:minmax(0,1fr)}.source-replay-entry button{width:100%}}
