:root {
  --bg:#f7f7f4; --panel:#fff; --ink:#1d1d1f; --muted:#6e6e73; --line:#e5e5e0;
  --soft:#f1f1ed; --accent:#23382f; --accent-ink:#fff; --warn:#9a6700; --radius:18px;
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}.topbar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1040px)/2));position:sticky;top:0;background:color-mix(in srgb,var(--header-bg) 88%,transparent);backdrop-filter:blur(18px);z-index:10;border-bottom:1px solid rgba(0,0,0,.04)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:650}.brandmark{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--accent);color:white;font-weight:700}.top-actions{display:flex;align-items:center;gap:10px}.ghost,.avatar,.linkish{border:0;background:transparent;color:inherit;cursor:pointer}.ghost{color:var(--muted);padding:8px 10px}.avatar{width:32px;height:32px;border-radius:50%;background:#e2e4df;font-size:12px;font-weight:700}
.shell{max-width:1040px;margin:0 auto;padding:58px 24px 100px}.service-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;color:var(--muted);font-weight:650}h1{font-size:42px;letter-spacing:-.035em;margin:8px 0 10px;line-height:1.05}.meta{color:var(--muted);font-size:14px}.linkish{text-decoration:underline;text-decoration-color:#c5c5bf;text-underline-offset:3px;padding:0}.head-actions{display:flex;gap:10px}.primary,.secondary,.add{border-radius:12px;padding:10px 15px;border:1px solid transparent;cursor:pointer}.primary{background:var(--accent);color:var(--accent-ink)}.secondary{background:var(--panel);border-color:var(--line);color:var(--ink)}
.readiness{margin:36px 0 18px;display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center}.readiness div:first-child{display:flex;flex-direction:column;gap:2px}.readiness span{color:var(--muted);font-size:13px}.bar{height:6px;border-radius:99px;background:#e4e4df;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);width:85%;border-radius:99px}
.service-list{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.item{display:grid;grid-template-columns:34px 1fr auto;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line);align-items:center;cursor:pointer}.item:last-child{border-bottom:0}.item:hover{background:#fbfbf8}.handle{color:#b5b5af;font-size:18px;cursor:grab;user-select:none}.item-title{font-weight:620;line-height:1.2}.item-sub{margin-top:5px;color:var(--muted);font-size:13px;display:flex;gap:8px;flex-wrap:wrap}.person{color:#46464a}.status{font-size:13px;color:var(--muted);white-space:nowrap}.status.ready{color:#355843}.status.missing{color:var(--warn)}.projection-chip{background:var(--soft);border-radius:999px;padding:2px 7px;color:#555}
.add-row{text-align:center;padding:24px}.add{background:transparent;color:var(--accent);font-weight:620}.sheet{border:0;background:transparent;padding:0;width:100%;height:100%;max-width:none;max-height:none}.sheet::backdrop{background:rgba(25,25,25,.22);backdrop-filter:blur(2px)}.sheet-card{position:absolute;right:18px;top:18px;bottom:18px;width:min(480px,calc(100vw - 36px));background:var(--panel);border-radius:22px;padding:28px;box-shadow:0 16px 60px rgba(0,0,0,.18);overflow:auto}.sheet-handle{display:none}.close{position:absolute;right:18px;top:16px;width:32px;height:32px;border:0;border-radius:50%;background:var(--soft);font-size:22px;line-height:1;cursor:pointer;color:#555}.sheet h2{font-size:26px;letter-spacing:-.02em;margin:8px 45px 24px 0}.field{margin:18px 0}.field label{display:block;font-size:12px;font-weight:650;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:#fafaf7;border-radius:12px;padding:11px 12px;color:var(--ink)}.field textarea{min-height:90px;resize:vertical}.toggle{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 0}.toggle input{width:20px;height:20px}.sheet-actions{display:flex;gap:8px;margin-top:28px}.sheet-actions .danger{margin-left:auto;color:#a12d2d;background:transparent;border:0}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{border:1px solid var(--line);background:#fafaf7;border-radius:14px;text-align:left;padding:16px;cursor:pointer}.choice strong{display:block;margin-bottom:4px}.choice span{font-size:12px;color:var(--muted)}.song-results{border:1px solid var(--line);border-radius:12px;overflow:hidden;max-height:360px;overflow-y:auto}.song-result{padding:12px;border-bottom:1px solid var(--line);cursor:pointer}.song-result:last-child{border:0}.song-result:hover{background:var(--soft)}.song-result small{display:block;color:var(--muted);margin-top:3px}
.print-dialog{border:0;background:transparent;width:100%;height:100%;max-width:none;max-height:none;padding:24px}.print-dialog::backdrop{background:rgba(25,25,25,.25)}.print-card{position:relative;background:white;max-width:760px;margin:20px auto;padding:50px 58px;border-radius:18px;box-shadow:0 20px 80px rgba(0,0,0,.2)}.run-title{text-align:center;margin-bottom:36px}.run-title h2{margin:0 0 6px;font-size:26px}.run-title p{margin:0;color:var(--muted)}.run-row{display:grid;grid-template-columns:36px 1fr 150px;gap:12px;padding:10px 0;border-bottom:1px solid #eee;align-items:start}.run-num{color:#888}.run-item strong{display:block}.run-note{font-size:12px;color:#666;margin-top:3px}.run-person{text-align:right;color:#555}.print-actions{text-align:right;margin-top:24px}
.activity-line{padding:12px 0;border-bottom:1px solid var(--line)}.activity-line small{display:block;color:var(--muted);margin-top:3px}
@media (max-width:700px){.topbar{height:58px;padding:0 14px}.brand span:last-child{display:none}.shell{padding:30px 12px 92px}.service-head{align-items:flex-start;display:block}.service-head h1{font-size:32px;margin-top:6px}.head-actions{margin-top:22px;display:grid;grid-template-columns:1fr 1fr}.primary,.secondary{min-height:44px}.readiness{grid-template-columns:1fr;margin:28px 4px 14px;gap:10px}.item{grid-template-columns:26px 1fr;padding:15px 13px;gap:8px}.item .status{grid-column:2;margin-top:-3px}.item-sub{line-height:1.35}.service-list{border-radius:15px}.sheet-card{left:0;right:0;top:auto;bottom:0;width:100%;max-height:88vh;border-radius:22px 22px 0 0;padding:24px 18px calc(24px + env(safe-area-inset-bottom))}.sheet-handle{display:block;width:38px;height:5px;border-radius:99px;background:#d8d8d2;margin:-12px auto 16px}.close{top:18px}.choice-grid{grid-template-columns:1fr}.print-dialog{padding:0}.print-card{min-height:100%;margin:0;border-radius:0;padding:48px 20px}.run-row{grid-template-columns:28px 1fr}.run-person{grid-column:2;text-align:left;font-size:12px;color:#666;margin-top:-6px}.print-actions{position:sticky;bottom:10px}}
@media print{body>*:not(.print-dialog){display:none!important}.print-dialog{display:block!important;position:static!important;padding:0!important}.print-dialog::backdrop{display:none}.print-card{box-shadow:none;margin:0;max-width:none;padding:15mm;border-radius:0}.print-card>.close,.print-actions{display:none}.run-row{break-inside:avoid}.run-title{margin-bottom:20px}}

.full{width:100%}.import-divider{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:12px;margin:20px 0}.import-divider:before,.import-divider:after{content:"";height:1px;background:var(--line);flex:1}
.song-head{display:flex;justify-content:space-between;gap:12px}.song-head h2{margin-bottom:4px}.lyric-section{border-top:1px solid var(--line);padding:10px 0}.lyric-section summary{cursor:pointer;font-size:13px;font-weight:680;color:#444}.lyric-text{padding:10px 0 4px;line-height:1.55;white-space:normal}.song-meta{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:12px;margin-top:18px}.song-copyright{font-size:12px;color:var(--muted)}
.big-paste{min-height:300px!important;font-family:inherit;line-height:1.45}.section-editor{margin:18px 0}.edit-section{border:1px solid var(--line);border-radius:14px;padding:12px;margin:10px 0;background:#fafaf7}.section-line input{border:0;background:transparent;font-weight:700;width:100%;padding:3px}.edit-section textarea{width:100%;min-height:110px;margin-top:8px;border:0;border-top:1px solid var(--line);background:transparent;padding:10px 3px;resize:vertical}.music-note{color:#5d664e}.run-music-note{font-size:12px;font-style:italic;color:#4e5842;margin-top:3px}

.item[draggable="true"]{transition:opacity .12s ease,box-shadow .12s ease,transform .12s ease}
.item.dragging{opacity:.42}
.item.drag-over{box-shadow:0 0 0 2px rgba(70,82,60,.28) inset}
.item.move-selected{box-shadow:0 0 0 2px rgba(70,82,60,.38) inset}
.handle{cursor:grab;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.handle:active{cursor:grabbing}
.section-line{display:grid;grid-template-columns:1fr 84px;align-items:center;gap:12px}
.section-line .secKey{border:1px solid var(--line);border-radius:8px;padding:6px 8px;text-align:center}
@media(max-width:700px){
  .handle{font-size:22px;padding:8px 10px;margin:-8px 0 -8px -4px}
}

/* v4 reliable pointer-based reordering */
.handle{
  cursor:grab !important;
  user-select:none;
  -webkit-user-select:none;
  touch-action:none !important;
}
.handle:active{cursor:grabbing !important}
body.reordering{
  user-select:none;
  -webkit-user-select:none;
}
.item.dragging{
  opacity:.55;
  box-shadow:0 8px 28px rgba(0,0,0,.10);
  position:relative;
  z-index:4;
}
.item.drag-over{
  box-shadow:0 0 0 2px rgba(70,82,60,.30) inset;
}
@media(max-width:700px){
  .handle{
    min-width:42px;
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
    margin:-8px 0 -8px -8px;
  }
}

/* v7: rebuilt drag-reorder */
.handle{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  padding:8px;
  margin:-8px 0 -8px -8px;
  min-width:40px;
  min-height:40px;
  border-radius:10px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:grab !important;
  touch-action:none !important;
  user-select:none;
  -webkit-user-select:none;
}
.handle:hover{background:rgba(0,0,0,.045)}
.handle:active{cursor:grabbing !important}
body.reordering{
  user-select:none;
  -webkit-user-select:none;
  overflow-x:hidden;
}
.item.drag-source{
  opacity:.22;
  background:rgba(72,84,63,.08);
  box-shadow:inset 0 0 0 1px rgba(72,84,63,.12);
}
.drag-ghost{
  position:fixed !important;
  z-index:99999 !important;
  pointer-events:none !important;
  opacity:.88;
  box-shadow:0 16px 36px rgba(0,0,0,.18) !important;
  background:var(--surface,#fff) !important;
  transform:scale(1.01);
}
.item.drop-before::before,
.item.drop-after::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  height:4px;
  border-radius:4px;
  background:rgba(73,88,61,.72);
  z-index:20;
}
.item.drop-before::before{top:-3px}
.item.drop-after::after{bottom:-3px}
.item.move-confirmed{
  animation:moveConfirmedV7 1s ease;
}
@keyframes moveConfirmedV7{
  0%{
    background:rgba(73,88,61,.22);
    box-shadow:0 0 0 2px rgba(73,88,61,.28);
  }
  100%{
    background:transparent;
    box-shadow:none;
  }
}
@media(max-width:700px){
  .handle{
    min-width:46px;
    min-height:46px;
    font-size:24px;
  }
}

/* v8 service switching / settings */
.title-line{display:flex;align-items:center;gap:8px}
.title-line h1{margin:0}
.service-switch{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;color:var(--muted);
  font-size:22px;line-height:1;padding:4px 7px;border-radius:9px;cursor:pointer;margin-top:3px
}
.service-switch:hover{background:rgba(0,0,0,.04);color:inherit}
.sheet-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}
.compact{padding:7px 10px!important;min-height:0!important}
.service-group{margin:20px 0}
.service-group h3,.settings-section h3{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 8px}
.service-option{
  width:100%;display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center;
  border:0;border-top:1px solid var(--line);background:transparent;text-align:left;padding:13px 4px;color:inherit;cursor:pointer
}
.service-option:last-child{border-bottom:1px solid var(--line)}
.service-option:hover{background:rgba(0,0,0,.025)}
.service-option.active{background:rgba(76,88,64,.055)}
.service-option-date{font-size:12px;color:var(--muted)}
.service-option small{font-size:11px;color:var(--muted);white-space:nowrap}
.settings-section{padding:18px 0;border-top:1px solid var(--line)}
.settings-section:first-of-type{border-top:0}
.library-status{display:flex;flex-direction:column;gap:3px;margin:8px 0 12px}
.library-status span{font-size:12px;color:var(--muted)}
.settings-actions{display:flex;gap:8px;flex-wrap:wrap}
.file-button{display:inline-flex;align-items:center;cursor:pointer}
.file-button input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
@media(max-width:700px){
  .top-actions .ghost#settingsBtn{display:none}
  .service-option{grid-template-columns:1fr auto}
  .service-option-date{grid-column:1/-1;margin-bottom:-5px}
  .service-option small{align-self:center}
}

/* v9 arbitrary services / one-off events */
#customServiceNameField{transition:opacity .15s ease}

/* v10 confirmation/warning UI */
.warning-card{
  border:1px solid rgba(166,112,45,.28);
  background:rgba(188,137,65,.08);
  border-radius:14px;
  padding:14px 16px;
  margin:14px 0;
}
.warning-card strong{display:block;margin-bottom:5px}
.warning-card p{margin:0;color:var(--muted);line-height:1.45}
.warning-list{
  font-size:13px;
  color:var(--muted);
  line-height:1.6;
  margin:12px 0 16px;
}
.confirm-line{
  display:flex;
  gap:10px;
  align-items:flex-start;
  font-size:13px;
  line-height:1.4;
  margin:16px 0;
}
.confirm-line input{margin-top:2px}
button:disabled{opacity:.42;cursor:not-allowed}

/* v11 navigation + Cloudflare persistence shell */
#serviceTitle[role="button"]{cursor:pointer;border-radius:8px;margin-left:-5px;padding-left:5px;padding-right:2px}
#serviceTitle[role="button"]:hover{background:rgba(0,0,0,.035)}
#serviceTitle[role="button"]:focus-visible{outline:2px solid rgba(70,82,60,.30);outline-offset:3px}

/* v12 projector-device workflow */
body{
  transition:background-color .18s ease;
}
body.projector-downloaded{
  background:#fff4df;
}
body.projector-stale{
  background:#ffe8e2;
}
body.projector-downloaded main,
body.projector-stale main{
  background:transparent;
}
#projectorBtn.projector-ok{
  background:#f2c46d;
  border-color:#d9a842;
}
#projectorBtn.projector-warn{
  background:#ef9b8d;
  border-color:#d87262;
}
.projector-state{
  border-radius:14px;
  padding:14px 16px;
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:14px 0;
}
.projector-state span{font-size:12px;color:var(--muted)}
.projector-state.neutral{background:rgba(0,0,0,.035)}
.projector-state.ready{background:#fff0cc;border:1px solid #e7c06a}
.projector-state.stale{background:#ffe1db;border:1px solid #df8a79}
.transfer-card{
  border:1px solid var(--line);
  border-radius:14px;
  padding:15px 16px;
  margin:16px 0;
}
.transfer-card p{color:var(--muted);line-height:1.5}
.inline-link{
  display:inline-flex;
  text-decoration:none;
  width:auto;
}

/* v14 unified OpenLP export / projector copy */
.projector-export-toggle{
  border:1px solid var(--line);
  border-radius:14px;
  padding:14px 15px;
  align-items:flex-start;
}
.projector-export-toggle span{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.projector-export-toggle small{
  color:var(--muted);
  line-height:1.4;
}
.export-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

/* v15 export refinements */
.transfer-card a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}
.export-warnings{
  font-size:13px;
  color:var(--muted);
  line-height:1.55;
  margin:10px 0 14px;
}

/* v19 service deletion / incomplete export */
.sheet-title-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* v20 inline delete / edit-state polish */
.item-actions{
  display:flex;
  align-items:center;
  gap:8px;
  justify-content:flex-end;
}
.item-delete{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:var(--muted);
  border-radius:9px;
  min-width:34px;
  min-height:34px;
  padding:6px 8px;
  cursor:pointer;
  font-size:14px;
}
.item-delete:hover{background:rgba(0,0,0,.045);color:#8b4a3d}
.item-delete.armed{
  background:#ffe1db;
  color:#8c3628;
  min-width:66px;
  font-weight:650;
}
@media(max-width:700px){
  .item-delete{min-width:40px;min-height:40px}
}

/* v21 trash bin + media editing */
.trash-icon{width:17px;height:17px;display:block}
.media-summary{
  border:1px solid var(--line);
  border-radius:10px;
  background:rgba(0,0,0,.02);
  padding:10px 11px;
  font-size:13px;
  color:var(--muted);
}
.existing-media{display:flex;flex-direction:column;gap:6px;margin:-4px 0 14px}
.media-row{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  border-bottom:1px solid var(--line);padding:7px 2px;font-size:12px
}
.media-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.media-remove{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;color:#8b4a3d;
  font:inherit;font-size:11px;cursor:pointer;padding:5px 7px;border-radius:7px
}
.media-remove:hover{background:#ffe8e2}

/* v22 editor identity + image ordering */
.image-media-list{gap:8px}
.image-media-row{
  position:relative;
  display:grid;
  grid-template-columns:24px 34px 54px minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  border:1px solid var(--line);
  border-radius:11px;
  padding:7px;
  background:rgba(0,0,0,.012);
}
.media-handle{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;color:var(--muted);
  cursor:grab;touch-action:none;min-width:32px;min-height:38px;border-radius:8px;font-size:18px
}
.media-handle:hover{background:rgba(0,0,0,.04)}
.media-handle:active{cursor:grabbing}
.media-thumb{
  width:54px;height:36px;object-fit:cover;border-radius:6px;background:#eee;border:1px solid var(--line)
}
.media-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.media-label strong{display:inline-block;min-width:20px;color:var(--muted)}
.image-media-row.media-dragging{opacity:.45}
.image-media-row.media-drop-before::before,
.image-media-row.media-drop-after::after{
  content:"";position:absolute;left:6px;right:6px;height:3px;border-radius:3px;background:rgba(73,88,61,.65)
}
.image-media-row.media-drop-before::before{top:-5px}
.image-media-row.media-drop-after::after{bottom:-5px}
@media(max-width:700px){
  .image-media-row{grid-template-columns:24px 34px 48px minmax(0,1fr) auto}
  .media-thumb{width:48px;height:32px}
}

/* v23 image reorder visual feedback + Done/Save Changes behavior */
.image-media-row{transition:opacity .12s ease,box-shadow .12s ease,background .12s ease}
.image-media-row.media-drag-source{
  opacity:.22;
  background:rgba(72,84,63,.08);
  box-shadow:inset 0 0 0 1px rgba(72,84,63,.12);
}
.media-drag-ghost{
  position:fixed !important;
  z-index:99999 !important;
  pointer-events:none !important;
  opacity:.9;
  box-shadow:0 16px 36px rgba(0,0,0,.18) !important;
  background:var(--surface,#fff) !important;
  transform:scale(1.01);
  border-radius:11px;
}
body.reordering-media{
  user-select:none;
  -webkit-user-select:none;
  overflow-x:hidden;
}
.image-media-row.media-drop-before::before,
.image-media-row.media-drop-after::after{
  height:4px;
  background:rgba(73,88,61,.72);
}
.image-media-row.media-move-confirmed{
  animation:mediaMoveConfirmed .9s ease;
}
@keyframes mediaMoveConfirmed{
  0%{background:rgba(73,88,61,.18);box-shadow:0 0 0 2px rgba(73,88,61,.24)}
  100%{background:rgba(0,0,0,.012);box-shadow:none}
}

/* v24 image delete confirmation + service workflow status */
.media-remove{
  min-width:32px;
  min-height:32px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.media-remove .trash-icon{width:16px;height:16px}
.media-remove.armed{
  background:#ffe1db;
  color:#8c3628;
  min-width:66px;
  font-weight:650;
}
.service-option-state{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
}
.projector-mini{
  padding:2px 6px;
  border-radius:999px;
}
.projector-mini.current{background:#fff0cc;color:#765616}
.projector-mini.stale{background:#ffe1db;color:#8c3628}
.text-action{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:var(--muted);
  text-decoration:underline;
  text-underline-offset:2px;
  padding:0;
  margin:0 0 8px;
  font:inherit;
  font-size:12px;
  cursor:pointer;
}
.text-action:hover{color:inherit}
@media(max-width:700px){
  .service-option-state{align-items:flex-start}
}

/* v25 title + last-edited status */
.last-edited{
  margin-top:5px;
  font-size:11px;
  color:var(--muted);
  letter-spacing:.01em;
}

/* v26 last-edited placement */
.last-edited{
  margin-top:7px;
  font-size:11px;
  color:#a66b2b;
  letter-spacing:.01em;
  opacity:.82;
}

/* v27 robust image drag cleanup */
.media-drag-ghost *{
  pointer-events:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}
.image-media-row.media-drag-source{
  opacity:.22 !important;
}
dialog:not([open]) .media-drag-ghost{
  display:none !important;
}

/* v28 Add Item guidance / Bible / disabled PowerPoint */
.choice span{line-height:1.38}
.choice-disabled{
  opacity:.43;
  cursor:not-allowed!important;
  filter:saturate(.35);
}
.choice-disabled:hover{transform:none!important;box-shadow:none!important}
.bible-text{min-height:220px!important;line-height:1.5}

/* v30 header status placement + compatibility guidance */
.head-actions-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:7px;
}
.head-status{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
  max-width:390px;
  text-align:right;
}
.last-edited{
  margin:0;
  font-size:11px;
  color:#a66b2b;
  opacity:.82;
}
.projector-status-note{
  font-size:11px;
  line-height:1.35;
  font-weight:600;
}
.projector-status-note.current{color:#9a641d}
.projector-status-note.stale{color:#a04435}
.pdf-requirement{margin-top:12px}
@media(max-width:700px){
  .head-actions-wrap,
  .head-status{
    align-items:stretch;
    text-align:left;
    width:100%;
    max-width:none;
  }
  .head-actions{display:flex;gap:8px}
  .head-actions button{flex:1}
}

/* v31 unified status location */
.head-actions-wrap,.head-status{display:contents}
.service-status-cluster{
  margin-top:7px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.service-status-cluster .last-edited,
.service-status-cluster .projector-status-note{
  text-align:left;
}
.readiness .projector-status-note.current{color:#9a641d}
.readiness .projector-status-note.stale{color:#a04435}

/* v32 BibleGateway guidance + song library manager */
.choice-with-link{
  display:flex;
  flex-direction:column;
  gap:0;
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  background:transparent;
}
.choice-with-link .choice-main{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
}
.choice-with-link .choice-main:hover{background:rgba(0,0,0,.025)}
.choice-link{
  display:block;
  border-top:1px solid var(--line);
  padding:8px 14px;
  font-size:11px;
  color:var(--muted);
  text-decoration:none;
}
.choice-link:hover{text-decoration:underline;color:inherit}
.field .meta a,.meta a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.song-picker-actions{margin-top:14px}
.library-results{max-height:54vh;overflow:auto}
.library-song-row{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  text-align:left;
  padding:11px 3px;
  color:inherit;
  cursor:pointer;
}
.library-song-row:hover{background:rgba(0,0,0,.025)}
.library-song-row span:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.library-song-row small{color:var(--muted)}
.library-song-meta{font-size:11px;color:var(--muted);text-align:right;white-space:nowrap}
@media(max-width:700px){
  .library-song-row{align-items:flex-start;flex-direction:column;gap:5px}
  .library-song-meta{text-align:left;white-space:normal}
}

/* v33 floating Add Item */
.floating-add{
  position:fixed;
  z-index:700;
  appearance:none;
  -webkit-appearance:none;
  border:1px solid rgba(58,70,52,.18);
  background:var(--surface,#fff);
  color:inherit;
  border-radius:999px;
  padding:11px 16px;
  font:inherit;
  font-weight:650;
  box-shadow:0 10px 28px rgba(0,0,0,.14);
  cursor:grab;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
}
.floating-add:hover{box-shadow:0 12px 32px rgba(0,0,0,.18)}
.floating-add:active,.floating-add-dragging{cursor:grabbing}
.floating-add-dragging{
  opacity:.9;
  transform:scale(1.02);
}
@media(max-width:700px){
  .floating-add{padding:12px 15px;min-height:46px}
}

/* v34 wider right-side dialogs */
#sheet{
  width:min(780px,calc(100vw - 24px)) !important;
  max-width:780px !important;
}
@media(max-width:700px){
  #sheet{
    width:calc(100vw - 12px) !important;
    max-width:none !important;
  }
}

/* floating Add Item visibility */
.floating-add{
  display:inline-flex !important;
  visibility:visible !important;
  opacity:1 !important;
  z-index:1200 !important;
}

/* Library hub */
.library-hub-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin:14px 0 18px;
}
.library-card{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid var(--line);
  background:rgba(0,0,0,.012);
  color:inherit;
  border-radius:14px;
  padding:18px;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}
.library-card:hover{background:rgba(0,0,0,.035)}
.library-card span{font-size:12px;color:var(--muted)}
.media-library-list{display:flex;flex-direction:column;gap:8px}
.media-library-row{
  display:grid;
  grid-template-columns:64px 1fr;
  gap:12px;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding:9px 2px;
}
.media-library-thumb{
  width:64px;height:42px;object-fit:cover;border-radius:7px;border:1px solid var(--line);background:#eee
}
.media-library-icon{
  width:64px;height:42px;border-radius:7px;border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--muted)
}
.media-library-row div:last-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.media-library-row small{color:var(--muted)}
@media(max-width:700px){
  .library-hub-grid{grid-template-columns:1fr}
}

/* v35 true wide right-side sheets */
.sheet-card{
  width:min(720px,calc(100vw - 36px)) !important;
}
@media(max-width:700px){
  .sheet-card{
    width:100% !important;
  }
}

/* Gmail-style floating Add Item pill */
.add-row{display:none!important}
.floating-add{
  position:fixed;
  right:24px;
  bottom:28px;
  z-index:1500;
  display:flex;
  align-items:stretch;
  border:1px solid rgba(55,65,50,.16);
  border-radius:18px;
  background:var(--panel,#fff);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  overflow:hidden;
}
.fab-grip,.fab-action{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
}
.fab-grip{
  width:38px;
  min-height:52px;
  color:var(--muted);
  cursor:grab;
  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  border-right:1px solid var(--line);
  font-size:19px;
}
.fab-grip:active{cursor:grabbing}
.fab-action{
  min-height:52px;
  padding:0 18px 0 15px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.fab-action:hover{background:rgba(0,0,0,.035)}
.floating-add-dragging{
  opacity:.92;
  transform:scale(1.015);
  box-shadow:0 14px 38px rgba(0,0,0,.22);
}
@media(max-width:700px){
  .floating-add{right:16px;bottom:18px;border-radius:17px}
  .fab-grip,.fab-action{min-height:50px}
}

/* song export controls */
.song-library-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
.library-search-field{flex:1;min-width:260px}
.song-export-actions{display:flex;gap:8px;padding-bottom:18px;flex-wrap:wrap}
.library-song-row{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  padding:7px 8px;
  border-bottom:1px solid var(--line);
}
.library-song-check{width:18px;height:18px}
.library-song-open{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;
  display:flex;justify-content:space-between;align-items:center;gap:15px;text-align:left;padding:5px 2px;cursor:pointer;min-width:0
}
.library-song-open>span:first-child{display:flex;flex-direction:column;gap:3px;min-width:0}
.library-song-open small{color:var(--muted)}
.library-export-one{white-space:nowrap}
@media(max-width:700px){
  .library-song-row{grid-template-columns:28px minmax(0,1fr)}
  .library-export-one{grid-column:2;justify-self:start}
  .library-song-open{flex-direction:column;align-items:flex-start;gap:4px}
}

/* library deletion */
.media-library-row{
  grid-template-columns:64px minmax(0,1fr) auto !important;
}
.media-library-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.library-protected{color:#9a641d!important}
.library-delete:disabled{
  opacity:.28;
  cursor:not-allowed;
}
.solid-danger{
  margin-left:auto;
  border:1px solid #c87567!important;
  background:#ffe1db!important;
  color:#8c3628!important;
  border-radius:10px;
  padding:9px 12px;
  cursor:pointer;
}

/* v37 requested navigation/status cleanup */

/* Smaller, translucent Gmail-style Add Item control. */
.floating-add{
  background:rgba(255,255,255,.74)!important;
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
  border-radius:14px!important;
  box-shadow:0 7px 20px rgba(0,0,0,.12)!important;
}
.fab-grip{
  width:28px!important;
  min-height:40px!important;
  font-size:15px!important;
  opacity:.7;
}
.fab-action{
  min-height:40px!important;
  padding:0 12px 0 10px!important;
  font-size:12.5px!important;
  font-weight:680!important;
}
.floating-add:hover{
  background:rgba(255,255,255,.88)!important;
}

/* Status text is not a navigation item. It sits immediately left of Activity. */
.top-status{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  max-width:360px;
  margin-right:4px;
  text-align:right;
  line-height:1.25;
}
.top-status .last-edited{
  margin:0;
  font-size:10.5px;
  color:#a66b2b;
  opacity:.82;
  white-space:nowrap;
}
.top-status .projector-status-note{
  margin-top:2px;
  font-size:10.5px;
  font-weight:600;
}
.top-status .projector-status-note.current{color:#9a641d}
.top-status .projector-status-note.stale{color:#a04435}

/* Activity report. */
.activity-list{display:flex;flex-direction:column}
.activity-row{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  border-bottom:1px solid var(--line);
  padding:9px 2px;
}
.activity-row span,.activity-row small{color:var(--muted)}
.solid-danger{
  border:1px solid #c87567!important;
  background:#ffe1db!important;
  color:#8c3628!important;
  border-radius:10px;
  padding:9px 12px;
}

@media(max-width:900px){
  .top-status{max-width:230px}
  .top-status .projector-status-note{
    white-space:nowrap;
    max-width:230px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}
@media(max-width:700px){
  .top-status{
    display:none;
  }
  .activity-row{
    grid-template-columns:1fr;
    gap:3px;
  }
}

/* v38 Add Item consistency */
.choice-with-link{
  border:1px solid var(--line)!important;
  background:#fafaf7!important;
  border-radius:14px!important;
}
.choice-with-link .choice-main{
  background:#fafaf7!important;
  padding:16px!important;
}
.choice-with-link .choice-main:hover{
  background:var(--soft)!important;
}
.choice-with-link .choice-link{
  background:#fafaf7!important;
}

/* v38 visibly translucent floating Add Item */
.floating-add{
  background:rgba(247,247,244,.52)!important;
  border-color:rgba(55,65,50,.12)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.10)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.1)!important;
  backdrop-filter:blur(16px) saturate(1.1)!important;
}
.fab-grip,.fab-action{
  background:transparent!important;
}
.floating-add:hover{
  background:rgba(247,247,244,.68)!important;
}

/* v39 long-press floating Add Item */
.floating-add{
  touch-action:none;
}
.floating-add-dragging{
  transform:scale(1.02);
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
}
.fab-action{
  touch-action:none;
}

/* v40 services layout + verse-order help */
.service-plans-head{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  margin-bottom:10px;
}
.service-plans-head h2{
  margin:8px 45px 0 0!important;
}
.service-plans-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-start;
}
.verse-order-help{
  margin-top:7px;
  line-height:1.45;
}

.services-page{min-height:100vh;background:var(--bg);padding:26px clamp(16px,3vw,42px) 48px}.services-page[hidden]{display:none!important}.services-page-inner{max-width:1500px;margin:0 auto}
.services-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.services-page-head h1{font-size:34px;letter-spacing:-.035em;margin:3px 0 5px}.services-page-subtitle{margin:0;color:var(--muted);font-size:13px}.services-page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.services-table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:18px;overflow:auto;box-shadow:0 7px 22px rgba(0,0,0,.04)}.services-table{width:100%;min-width:1120px;border-collapse:collapse;font-size:12px}
.services-table th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:11px 12px;background:rgba(0,0,0,.02);border-bottom:1px solid var(--line);white-space:nowrap}.services-table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:middle}.services-table tbody tr:hover{background:rgba(0,0,0,.015)}
.services-open-service{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:3px}.services-open-service strong{font-size:13px}.services-open-service small,.services-muted{font-size:10.5px;color:var(--muted)}
.services-table a,.service-mobile-card a{color:inherit;text-decoration:underline;text-underline-offset:2px}.services-mobile-list{display:none}.add-service-churchsuite{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.extension-config{margin-top:8px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.015)}.openlp-plugin-note{padding:10px 12px;border-radius:10px;background:rgba(0,0,0,.025)}
@media(max-width:900px){.services-page{padding:18px 12px 36px}.services-page-head{flex-direction:column;gap:14px}.services-page-actions{justify-content:flex-start;width:100%}.services-table-wrap{display:none}.services-mobile-list{display:flex;flex-direction:column;gap:10px}.service-mobile-card{border:1px solid var(--line);background:var(--panel);border-radius:15px;padding:14px}.service-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.service-mobile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;margin-top:12px}.service-mobile-grid>span{display:flex;flex-direction:column;gap:3px;font-size:12px}.service-mobile-grid small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.045em}.mobile-wide{grid-column:1/-1}}
@media(max-width:520px){.services-page-head h1{font-size:28px}.services-page-actions{display:grid;grid-template-columns:1fr 1fr}.services-page-actions button:last-child{grid-column:1/-1}.service-mobile-grid{grid-template-columns:1fr}.mobile-wide{grid-column:auto}.sheet-card{right:6px!important;left:6px!important;top:6px!important;bottom:6px!important;width:auto!important;padding:20px 18px!important;border-radius:18px!important}.sheet h2{font-size:23px!important}.head-actions{flex-wrap:wrap}.brand span:last-child{display:none}.floating-add{max-width:calc(100vw - 28px)}}

/* v43 ChurchSuite column visibility / secret field */
.services-table [data-cs-column][hidden]{display:none!important}

/* v44 Settings save controls / ChurchSuite sample URL */
.sheet-title-row #saveSettingsTop{margin-left:auto}
#sampleChurchSuiteRulesBtn{margin-top:-4px}



/* v51 ChurchSuite-first Add Service flow */
.manual-fields-optional{
  opacity:.48;
}
.manual-fields-optional input,
.manual-fields-optional select{
  pointer-events:none;
}
.cs-scan-source{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:10px 12px;
  margin-bottom:12px;
}
.cs-scan-source a{
  color:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
  font-size:11px;
}

/* v52 ChurchSuite scan confirmation */
.destructive-preview{
  border-color:rgba(161,76,55,.25)!important;
  background:rgba(255,231,224,.7)!important;
}
.destructive-preview ul{
  margin:8px 0 0 18px;
  padding:0;
}
.scan-preview-grid{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:10px;
  margin:12px 0;
}
.scan-preview-grid>div{
  border:1px solid var(--line);
  border-radius:10px;
  padding:10px 11px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.scan-preview-grid small{
  color:var(--muted);
  text-transform:uppercase;
  font-size:9.5px;
  letter-spacing:.05em;
}
@media(max-width:620px){
  .scan-preview-grid{grid-template-columns:1fr}
}

/* v53 OpenLP theme preserved independently of ChurchSuite */
.scan-theme-note{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  padding:9px 11px;
  margin:12px 0;
}
.scan-theme-note small{
  color:var(--muted);
  text-transform:uppercase;
  font-size:9.5px;
  letter-spacing:.05em;
}

/* v54 real ChurchSuite scan */
.cs-scan-items{
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
  margin:12px 0;
}
.cs-scan-item{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 105px;
  gap:10px;
  align-items:start;
  padding:10px 11px;
  border-bottom:1px solid var(--line);
}
.cs-scan-item:last-child{border-bottom:0}
.cs-scan-item.scan-unmapped{background:rgba(255,244,224,.58)}
.cs-scan-order{color:var(--muted);font-size:10px;padding-top:2px}
.cs-scan-item-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.cs-scan-item-main strong{font-size:12.5px}
.cs-scan-item-main small{font-size:10px;color:var(--muted)}
.cs-scan-item-main p{margin:3px 0 0;font-size:10.5px;color:var(--muted);line-height:1.35}
.cs-scan-map{font-size:10.5px;text-align:right;color:var(--muted)}
.churchsuite-types-note{margin-top:12px}
@media(max-width:620px){
  .cs-scan-item{grid-template-columns:28px minmax(0,1fr)}
  .cs-scan-map{grid-column:2;text-align:left}
}

/* v60 ChurchSuite API + profile */
.churchsuite-connection-row{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:10px 0;
}
.churchsuite-connection-row>div{display:flex;flex-direction:column;gap:3px}
.churchsuite-connection-row span{font-size:11px;color:var(--muted)}
.churchsuite-connection-row .connection-ok{color:#46734d}
.churchsuite-connection-row .connection-error{color:#9b4034}
.cs-auto-plan-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:12px 0}
.cs-auto-plan-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--line)}
.cs-auto-plan-row:last-child{border-bottom:0}
.cs-auto-plan-row>div{display:flex;flex-direction:column;gap:3px}
.cs-auto-plan-row small{color:var(--muted);font-size:10.5px}
.profile-card{display:flex;align-items:center;gap:14px;padding:8px 0 18px}
.profile-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:var(--soft);font-weight:700;font-size:17px}
.profile-info h2{margin:0 0 3px}
.profile-info p{margin:0;color:var(--muted);font-size:12px}
.profile-info span{display:block;margin-top:5px;color:var(--muted);font-size:10.5px}
.avatar{cursor:pointer}
@media(max-width:620px){
  .cs-auto-plan-row{grid-template-columns:minmax(0,1fr) auto}
  .cs-auto-plan-row .services-state{grid-column:2}
}

/* v61 ChurchSuite import selection / batch sync */
.cs-type-pick-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:12px 0}
.cs-type-pick{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 11px;border-bottom:1px solid var(--line)}
.cs-type-pick:last-child{border-bottom:0}.cs-type-pick small{color:var(--muted);font-size:10px}
.cs-auto-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 2px;font-size:11px}
.cs-auto-plan-row.selectable{grid-template-columns:24px minmax(0,1fr) auto;cursor:pointer}
.cs-batch-preview{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin:12px 0}
.cs-batch-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:10px 11px;border-bottom:1px solid var(--line)}
.cs-batch-row:last-child{border-bottom:0}.cs-batch-row>div{display:flex;flex-direction:column;gap:3px}.cs-batch-row small{font-size:10px;color:var(--muted)}

/* v62 ChurchSuite UX tidy-up */
.song-search-results{
  display:flex;
  flex-direction:column;
  max-height:52vh;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  margin:8px 0 12px;
}
.song-search-result{
  appearance:none;
  border:0;
  border-bottom:1px solid var(--line);
  background:var(--panel);
  padding:10px 12px;
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.song-search-result:last-child{border-bottom:0}
.song-search-result:hover,.song-search-result:focus{background:rgba(0,0,0,.035)}
.song-search-result strong{font-size:12.5px}
.song-search-result small{font-size:10px;color:var(--muted)}
.empty-search{padding:14px;color:var(--muted);font-size:11px}
.cs-auto-plan-row.already-added{
  background:rgba(232,142,57,.09);
}
.inline-ignore-images{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:4px;
  font-size:10px;
  color:var(--muted);
  cursor:pointer;
}
.inline-ignore-images input{
  width:13px;
  height:13px;
  margin:0;
}

/* v63 sync-preservation / Bible-ignore / pending ChurchSuite write */
.inline-ignore-bible{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:4px;
  font-size:10px;
  color:var(--muted);
  cursor:pointer;
}
.inline-ignore-bible input{
  width:13px;
  height:13px;
  margin:0;
}
.churchsuite-pending-chip{
  display:inline-flex;
  align-items:center;
  font-size:9.5px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(232,142,57,.12);
  color:#9a5d20;
}

/* v65 Services progress states */
.service-progress{
  display:inline-flex;
  align-items:center;
  min-height:24px;
  padding:3px 9px;
  border-radius:999px;
  font-size:10.5px;
  font-weight:600;
  white-space:nowrap;
  border:1px solid transparent;
}
.service-progress-incomplete{
  background:rgba(190,66,54,.10);
  border-color:rgba(190,66,54,.18);
  color:#9a3f35;
}
.service-progress-complete{
  background:rgba(64,132,74,.10);
  border-color:rgba(64,132,74,.18);
  color:#3f7547;
}
.service-progress-downloaded{
  background:rgba(55,105,160,.10);
  border-color:rgba(55,105,160,.18);
  color:#3e6792;
}
.service-progress-amended{
  background:rgba(232,142,57,.12);
  border-color:rgba(232,142,57,.22);
  color:#955b21;
}

/* v67 floating Add Item regression fix — authoritative final rules */
.floating-add{
  position:fixed!important;
  z-index:1500!important;
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:stretch!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100vw - 28px)!important;
  padding:0!important;
  margin:0!important;
  left:58vw;
  top:66vh;
  right:auto!important;
  bottom:auto!important;
  overflow:hidden!important;
  border:1px solid rgba(55,65,50,.12)!important;
  border-radius:14px!important;
  background:rgba(247,247,244,.52)!important;
  box-shadow:0 6px 18px rgba(0,0,0,.10)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.1)!important;
  backdrop-filter:blur(16px) saturate(1.1)!important;
  touch-action:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
.floating-add .fab-grip,
.floating-add .fab-action{
  position:static!important;
  float:none!important;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  color:inherit!important;
  box-sizing:border-box!important;
}
.floating-add .fab-grip{
  flex:0 0 28px!important;
  width:28px!important;
  min-width:28px!important;
  min-height:40px!important;
  padding:0!important;
  border-right:1px solid var(--line)!important;
  font-size:15px!important;
  opacity:.7;
  cursor:grab!important;
}
.floating-add .fab-action{
  flex:0 0 auto!important;
  width:auto!important;
  min-height:40px!important;
  padding:0 12px 0 10px!important;
  font-size:12.5px!important;
  font-weight:680!important;
  white-space:nowrap!important;
  cursor:pointer!important;
}
.floating-add:hover{
  background:rgba(247,247,244,.68)!important;
}
.floating-add-dragging{
  opacity:.92!important;
  transform:scale(1.02)!important;
  box-shadow:0 10px 26px rgba(0,0,0,.18)!important;
}
@media(max-width:700px){
  .floating-add{
    max-width:calc(100vw - 20px)!important;
  }
}

/* v68 floating Add Item uses the same dark primary treatment as Export OpenLP */
.floating-add{
  background:var(--accent)!important;
  color:var(--accent-ink)!important;
  border-color:var(--accent)!important;
  box-shadow:0 7px 20px rgba(0,0,0,.16)!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.floating-add .fab-grip,
.floating-add .fab-action{
  color:var(--accent-ink)!important;
}
.floating-add .fab-grip{
  border-right-color:rgba(255,255,255,.20)!important;
  opacity:.72!important;
}
.floating-add:hover{
  background:var(--accent)!important;
  color:var(--accent-ink)!important;
  filter:brightness(1.06);
}

/* v69 consolidation */
#servicesCloseBtn{color:var(--ink)!important;font-weight:700!important;background:rgba(35,56,47,.07)!important;border:1px solid rgba(35,56,47,.14)!important;border-radius:10px!important;padding:9px 12px!important}
#servicesCloseBtn:hover{background:rgba(35,56,47,.12)!important}
.service-progress{width:148px;min-width:148px;justify-content:center;text-align:center;box-sizing:border-box}
.service-progress-incomplete{background:rgba(232,142,57,.13)!important;border-color:rgba(232,142,57,.24)!important;color:#955b21!important}
.service-progress-complete{background:rgba(64,132,74,.10)!important;border-color:rgba(64,132,74,.18)!important;color:#3f7547!important}
.service-progress-downloaded{background:rgba(55,105,160,.10)!important;border-color:rgba(55,105,160,.18)!important;color:#3e6792!important}
.service-progress-amended{background:rgba(190,66,54,.11)!important;border-color:rgba(190,66,54,.22)!important;color:#9a3f35!important}
.service-progress-old{background:rgba(110,110,115,.10)!important;border-color:rgba(110,110,115,.18)!important;color:#66666b!important}
.service-mobile-head{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important}
.service-mobile-head .services-open-service{min-width:0!important;width:100%!important}
.service-mobile-head .services-open-service strong,.service-mobile-head .services-open-service small{min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.service-mobile-head>.item-delete{width:34px!important;min-width:34px!important;margin:0!important;justify-self:end!important}
.service-mobile-card{min-width:0!important;overflow:hidden!important}
.services-page-actions{align-items:center!important}
.services-table td,.services-table th{vertical-align:middle!important}
.cs-import-mode-grid .choice{min-height:92px}
@media(max-width:700px){#servicesCloseBtn{font-weight:750!important;padding:10px 12px!important}.services-page-actions{gap:8px!important}}

/* v70 mobile service-editor row fix */
@media(max-width:700px){
  .service-list .item{
    display:grid!important;
    grid-template-columns:26px minmax(0,1fr) auto!important;
    align-items:start!important;
    column-gap:8px!important;
    row-gap:4px!important;
    min-width:0!important;
  }

  .service-list .item>.handle{
    grid-column:1!important;
    grid-row:1 / span 2!important;
    align-self:start!important;
  }

  .service-list .item>div:nth-child(2){
    grid-column:2!important;
    grid-row:1 / span 2!important;
    min-width:0!important;
    overflow:hidden!important;
  }

  .service-list .item-title{
    min-width:0!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .service-list .item-sub{
    min-width:0!important;
    overflow:hidden!important;
  }

  .service-list .item-actions{
    grid-column:3!important;
    grid-row:1 / span 2!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-end!important;
    justify-content:flex-start!important;
    gap:6px!important;
    width:auto!important;
    min-width:34px!important;
    margin:0!important;
  }

  .service-list .item-actions .status{
    grid-column:auto!important;
    margin:0!important;
    white-space:nowrap!important;
    font-size:10px!important;
  }

  .service-list .item-actions .item-delete{
    flex:0 0 34px!important;
    width:34px!important;
    min-width:34px!important;
    height:34px!important;
    margin:0!important;
    align-self:flex-end!important;
  }
}

/* v71 mobile confirmation/dialog viewport containment */
@media(max-width:700px){
  dialog.sheet,
  #sheet{
    box-sizing:border-box!important;
    width:calc(100vw - 20px)!important;
    max-width:calc(100vw - 20px)!important;
    min-width:0!important;
    left:10px!important;
    right:10px!important;
    margin-left:0!important;
    margin-right:0!important;
    overflow-x:hidden!important;
  }

  dialog.sheet .sheet-body,
  #sheet .sheet-body,
  dialog.sheet>div,
  #sheet>div{
    box-sizing:border-box!important;
    max-width:100%!important;
    min-width:0!important;
    overflow-wrap:anywhere!important;
  }

  dialog.sheet .warning-card,
  #sheet .warning-card{
    box-sizing:border-box!important;
    max-width:100%!important;
    min-width:0!important;
  }

  dialog.sheet .sheet-actions,
  #sheet .sheet-actions{
    box-sizing:border-box!important;
    max-width:100%!important;
    min-width:0!important;
    display:flex!important;
    flex-wrap:wrap!important;
    justify-content:flex-end!important;
    gap:8px!important;
  }

  dialog.sheet .sheet-actions button,
  #sheet .sheet-actions button{
    max-width:100%!important;
  }
}

/* v73 fine tuning */
.service-row-actions{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.service-delete-btn{width:34px!important;min-width:34px!important;height:34px!important;padding:0!important;display:inline-grid!important;place-items:center!important}
.service-delete-btn.delete-x-confirm{background:#b42318!important;color:#fff!important;border-color:#b42318!important;font-size:25px!important;line-height:1!important;font-weight:500!important}
.component-editor-title{padding-right:38px}
.component-editor-title h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#saveItemTop{flex:0 0 auto}
.no-attachments-chip{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:rgba(110,110,115,.10);color:#66666b;font-size:9.5px;font-weight:600}
.inline-ignore-video{display:inline-flex;align-items:center;gap:5px;margin-left:4px;font-size:10px;color:var(--muted);cursor:pointer}
.inline-ignore-video input{width:13px;height:13px;margin:0}
@media(max-width:700px){
  .service-mobile-head{grid-template-columns:minmax(0,1fr) auto!important}
  .service-row-actions{flex:0 0 auto;gap:5px}
  .service-edit-btn{padding:7px 9px!important;min-height:34px!important}
  .service-delete-btn{width:34px!important;min-width:34px!important}
  .component-editor-title{gap:8px;padding-right:34px}
  #saveItemTop{padding:7px 9px!important;font-size:11px!important}
}

/* v74: thumb-friendly default position is set in JS; dragging remains unchanged. */
@media(max-width:700px){
  #addFab{touch-action:none}
}


/* ============================================================
   v76 — unified fixed-screen layout
   ============================================================ */
:root{
  --app-header-h:72px;
  --app-footer-h:70px;
  --screen-gutter:24px;
}

/* Header */
.topbar{
  position:fixed!important;
  inset:0 0 auto 0!important;
  height:var(--app-header-h)!important;
  z-index:1800!important;
  padding:0 max(20px,calc((100vw - 1280px)/2))!important;
  background:color-mix(in srgb,var(--bg) 94%,transparent)!important;
  border-bottom:1px solid var(--line)!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  gap:18px!important;
}
.screen-nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:0;
}
.screen-nav[hidden]{display:none!important}
.top-actions{min-width:0}
.top-status{max-width:300px!important}
.back-last-service{font-weight:700!important}

/* Scroll only the screen content between fixed header/footer */
.shell,
.services-page{
  position:fixed!important;
  top:var(--app-header-h)!important;
  bottom:var(--app-footer-h)!important;
  left:0!important;
  right:0!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.shell{
  max-width:none!important;
  margin:0!important;
  padding:34px max(var(--screen-gutter),calc((100vw - 1040px)/2)) 46px!important;
}
.services-page{
  min-height:0!important;
  padding:0!important;
  background:var(--bg)!important;
}
.services-page-inner{
  max-width:1280px!important;
  min-height:100%;
  margin:0 auto!important;
  padding:34px var(--screen-gutter) 46px!important;
}
.services-page-head{margin-bottom:22px!important}
.services-page-head h1{margin-bottom:8px!important}

/* Fixed footer */
.app-footer{
  position:fixed;
  inset:auto 0 0 0;
  height:var(--app-footer-h);
  z-index:1750;
  display:flex;
  align-items:center;
  background:color-mix(in srgb,var(--bg) 96%,transparent);
  border-top:1px solid var(--line);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
.app-footer[hidden]{display:none!important}
.footer-inner{
  width:min(1280px,100%);
  margin:0 auto;
  padding:0 var(--screen-gutter);
  display:flex;
  align-items:center;
  gap:9px;
}
.footer-primary{
  min-width:110px;
  font-weight:700;
}
.footer-icon-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
}
#undoBtn:disabled{
  opacity:.38;
  cursor:default;
}
#openLPViewBtn[aria-pressed="true"]{
  background:var(--accent)!important;
  color:var(--accent-ink)!important;
  border-color:var(--accent)!important;
}
#plannerSyncChurchSuiteBtn.sync-attention{
  background:rgba(232,142,57,.11);
  border-color:rgba(232,142,57,.32);
}

/* ChurchSuite local divergence */
.churchsuite-sync-note{
  max-width:1040px;
  margin:0 auto 12px;
  padding:7px 10px;
  border-radius:9px;
  background:rgba(232,142,57,.08);
  border:1px solid rgba(232,142,57,.18);
  color:#8b591f;
  font-size:11px;
}
.churchsuite-sync-note[hidden]{display:none!important}

/* Items that still need work */
.service-list .item.needs-editing{
  background:rgba(232,142,57,.055);
}
.service-list .item.needs-editing:hover{
  background:rgba(232,142,57,.085);
}

/* Services actions / mobile ChurchSuite */
.churchsuite-view-plan{
  display:inline-flex;
  align-items:center;
  text-decoration:none!important;
  white-space:nowrap;
}
.churchsuite-mobile-field{
  display:flex!important;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}
.churchsuite-mobile-actions{
  display:flex!important;
  flex-wrap:wrap;
  gap:7px;
}

/* Fixed dialog chrome */
.sheet-card{
  padding:0!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr) auto!important;
}
.sheet-fixed-header{
  position:relative;
  min-height:70px;
  display:flex;
  align-items:center;
  padding:18px 64px 14px 24px;
  border-bottom:1px solid var(--line);
  background:var(--panel);
}
.sheet-fixed-header h2{
  margin:0!important;
  font-size:25px!important;
  line-height:1.15;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sheet-fixed-header .close{
  top:50%!important;
  transform:translateY(-50%);
}
.sheet-scroll-body{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:22px 24px 26px;
  overscroll-behavior:contain;
}
.sheet-fixed-footer{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  padding:11px 24px;
  border-top:1px solid var(--line);
  background:var(--panel);
}
.sheet-fixed-footer:empty{display:none}
.sheet-fixed-footer .danger{
  color:#a12d2d;
  background:transparent;
  border:0;
}
.sheet-title-row{
  margin:0 0 14px!important;
}
.sheet-title-row:empty{display:none!important}

/* Remove obsolete FAB if older cached markup appears. */
#addFab{display:none!important}

/* Mobile */
@media(max-width:900px){
  .top-status{display:none!important}
}
@media(max-width:700px){
  :root{
    --app-header-h:108px;
    --app-footer-h:68px;
    --screen-gutter:20px;
  }
  .topbar{
    height:var(--app-header-h)!important;
    padding:8px var(--screen-gutter)!important;
    grid-template-columns:auto 1fr auto!important;
    grid-template-rows:42px 46px!important;
    gap:4px 8px!important;
  }
  .brand{grid-column:1;grid-row:1}
  .top-actions{
    grid-column:2 / 4;
    grid-row:1;
    justify-content:flex-end;
    gap:3px!important;
  }
  .top-actions .ghost{padding:7px 6px!important;font-size:11px}
  .screen-nav{
    grid-column:1 / -1;
    grid-row:2;
    justify-content:flex-start;
    overflow-x:auto;
    scrollbar-width:none;
    padding:2px 0;
  }
  .screen-nav::-webkit-scrollbar{display:none}
  .screen-nav button{
    flex:0 0 auto;
    min-height:38px!important;
    padding:7px 10px!important;
    font-size:11px!important;
  }

  .shell{
    padding:22px var(--screen-gutter) 32px!important;
  }
  .services-page-inner{
    padding:22px var(--screen-gutter) 32px!important;
  }

  /* Wider safe gutters for finger scrolling */
  .service-list,
  .services-mobile-list{
    margin-left:2px;
    margin-right:2px;
  }

  .footer-inner{
    padding:0 var(--screen-gutter);
    gap:6px;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .footer-inner::-webkit-scrollbar{display:none}
  .footer-inner button{
    flex:0 0 auto;
    min-height:42px!important;
    padding:8px 10px!important;
    font-size:11px!important;
  }
  .footer-primary{min-width:92px}

  .services-mobile-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  }
  .services-mobile-grid>span{
    min-width:0;
  }
  .services-mobile-grid .service-progress{
    width:100%!important;
    min-width:0!important;
  }

  .sheet-card{
    left:8px!important;
    right:8px!important;
    bottom:8px!important;
    width:calc(100vw - 16px)!important;
    max-width:calc(100vw - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
    border-radius:20px!important;
  }
  .sheet-fixed-header{
    min-height:62px;
    padding:14px 54px 12px 18px;
  }
  .sheet-fixed-header h2{font-size:22px!important}
  .sheet-handle{
    position:absolute;
    top:7px;
    left:50%;
    transform:translateX(-50%);
    margin:0!important;
  }
  .sheet-scroll-body{padding:18px 18px 22px}
  .sheet-fixed-footer{
    min-height:62px;
    padding:9px 18px calc(9px + env(safe-area-inset-bottom));
    flex-wrap:wrap;
  }
}

/* Keep dialogs above fixed app chrome. */
.sheet{z-index:3000}
.sheet::backdrop{z-index:2999}


.openlp-only-view .service-list .handle{visibility:hidden!important;pointer-events:none!important}
.openlp-only-view .service-list .item{cursor:pointer}

@media(max-width:1250px) and (min-width:701px){
  .top-status{display:none!important}
}

/* v77 mobile footer tightening */
@media(max-width:700px){
  #plannerFooter .footer-inner{
    overflow:visible!important;
    gap:5px!important;
  }
  #plannerFooter button{
    min-width:0!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  #plannerFooter #addBtn{
    min-width:72px!important;
    width:72px!important;
    padding-left:6px!important;
    padding-right:6px!important;
  }
  #plannerFooter #undoBtn{
    padding-left:7px!important;
    padding-right:7px!important;
  }
  #plannerFooter .footer-sync-cs{
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding-left:7px!important;
    padding-right:7px!important;
  }
  #plannerFooter .sync-icon{
    font-size:17px;
    line-height:1;
  }
  #plannerFooter #openLPViewBtn{
    padding-left:7px!important;
    padding-right:7px!important;
  }
}

/* v78: safer mobile Service Planner scroll gutters */
@media(max-width:700px){
  .shell{padding-left:30px!important;padding-right:30px!important}
  #plannerFooter .footer-inner{padding-left:20px!important;padding-right:20px!important}
  .cs-import-mode-grid .choice.selected{
    border-color:var(--accent)!important;
    background:color-mix(in srgb,var(--accent) 10%,var(--panel))!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 16%,transparent);
  }
}
.cs-import-mode-grid .choice.selected{
  border-color:var(--accent)!important;
  background:color-mix(in srgb,var(--accent) 8%,var(--panel))!important;
}
.cs-import-mode-grid .choice-working{cursor:progress!important}

/* v78 OpenLP Planner media library */
.media-source-actions{display:flex;align-items:center;gap:9px;margin:10px 0 12px}
.media-source-actions span{font-size:11px;color:var(--muted)}
.media-library-section{margin:0 0 26px}
.media-library-section-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 10px}
.media-library-section-title h3{margin:0}
.media-library-section-title span{font-size:10px;color:var(--muted)}
.service-media-folder{border:1px solid var(--line);border-radius:12px;background:var(--panel);margin:0 0 9px;overflow:hidden}
.service-media-folder summary{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;cursor:pointer}
.service-media-folder summary span{font-size:10px;color:var(--muted)}
.service-media-folder .media-library-list{padding:0 10px 10px}
.library-stored-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:rgba(55,130,85,.10);color:#39734c;font-size:10px;font-weight:700}
.planner-media-picker{display:grid;gap:8px}
.planner-media-pick{display:grid;grid-template-columns:auto 54px minmax(0,1fr);gap:10px;align-items:center;padding:9px;border:1px solid var(--line);border-radius:11px;cursor:pointer}
.planner-media-pick:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
.planner-media-pick img{width:54px;height:42px;object-fit:cover;border-radius:7px;background:#eee}
.planner-media-pick>span:last-child{display:flex;flex-direction:column;min-width:0}
.planner-media-pick small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
@media(max-width:700px){
  .media-library-section-title{align-items:flex-start;flex-direction:column;gap:2px}
  .service-media-folder summary{align-items:flex-start;flex-direction:column;gap:2px}
  .media-library-row{grid-template-columns:52px minmax(0,1fr) auto!important}
}

/* v79 song library safety / save copy */
.song-safety-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  padding:10px 0 4px;
}
.song-safety-row .meta{margin:0}
.copy-title-preview{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--soft);
}
.copy-title-preview small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:9px}
@media(max-width:700px){
  .song-safety-row{align-items:stretch;flex-direction:column}
  .song-safety-row button{width:100%}
}

/* v80 — dialog consistency / mobile containment */

/* All shared sheet dialogs use fixed chrome and keep only the middle content scrolling. */
.sheet-card{
  box-sizing:border-box!important;
  width:min(760px,calc(100vw - 28px))!important;
  max-width:calc(100vw - 28px)!important;
  max-height:calc(100dvh - 28px)!important;
}
.sheet-scroll-body{
  min-width:0!important;
  overflow-x:hidden!important;
}
.sheet-scroll-body>*{
  max-width:100%;
  box-sizing:border-box;
}
.sheet-fixed-footer{
  flex:0 0 auto!important;
  overflow:hidden!important;
}
.sheet-fixed-footer button{
  max-width:100%!important;
}

/* Choice grids and media/library rows may shrink instead of forcing the dialog wider. */
.choice-grid,
.planner-media-picker,
.media-library-list,
.service-media-folders{
  min-width:0!important;
  max-width:100%!important;
}
.choice,
.planner-media-pick,
.media-library-row,
.service-media-folder{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.planner-media-pick>span:last-child,
.media-library-info{
  min-width:0!important;
}
.planner-media-pick strong,
.planner-media-pick small,
.media-library-info strong,
.media-library-info small{
  overflow-wrap:anywhere!important;
  word-break:break-word;
}

/* Destructive action in the fixed footer remains distinct without stretching it. */
.sheet-fixed-footer .solid-danger{
  background:#b42318!important;
  color:#fff!important;
  border-color:#b42318!important;
}

@media(max-width:700px){
  .sheet{
    padding:0!important;
  }
  .sheet-card{
    position:fixed!important;
    left:8px!important;
    right:8px!important;
    top:8px!important;
    bottom:8px!important;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    margin:0!important;
  }
  .sheet-fixed-header{
    flex:0 0 62px!important;
  }
  .sheet-scroll-body{
    min-height:0!important;
    padding:18px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .sheet-fixed-footer{
    min-height:64px!important;
    padding:9px 14px calc(9px + env(safe-area-inset-bottom))!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:7px!important;
    overflow-x:auto!important;
    scrollbar-width:none;
  }
  .sheet-fixed-footer::-webkit-scrollbar{display:none}
  .sheet-fixed-footer button{
    flex:0 0 auto!important;
    min-height:42px!important;
    white-space:nowrap!important;
  }

  /* Keep OpenLP Planner library picker comfortably inside a phone viewport. */
  .planner-media-pick{
    grid-template-columns:24px 48px minmax(0,1fr)!important;
    gap:8px!important;
    padding:8px!important;
  }
  .planner-media-pick img{
    width:48px!important;
    height:40px!important;
  }

  .choice-grid{
    grid-template-columns:1fr!important;
  }
}

/* v81 song master-save feedback */
.master-save-status{margin:10px 0 0}
.master-save-status.save-error{color:#b42318;font-weight:700}

/* v82 duplicate song cleanup */
.duplicate-song-groups{display:grid;gap:14px}
.duplicate-song-group{border:1px solid var(--line);border-radius:13px;background:var(--panel);overflow:hidden}
.duplicate-song-group-title{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 13px;background:var(--soft);border-bottom:1px solid var(--line)}
.duplicate-song-group-title span{font-size:10px;color:var(--muted)}
.duplicate-song-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 13px;border-bottom:1px solid var(--line);cursor:pointer}
.duplicate-song-row:last-child{border-bottom:0}
.duplicate-song-main{display:flex;flex-direction:column;min-width:0}
.duplicate-song-main small{color:var(--muted)}
.duplicate-song-usage{font-size:10px;color:var(--muted);text-align:right}
.duplicate-song-protected{background:rgba(110,110,115,.045);cursor:default}
.duplicate-song-protected .duplicate-song-usage{font-weight:650}
@media(max-width:700px){
  .duplicate-song-group-title{align-items:flex-start;flex-direction:column;gap:2px}
  .duplicate-song-row{grid-template-columns:auto minmax(0,1fr);align-items:start}
  .duplicate-song-usage{grid-column:2;text-align:left}
}

/* v84 — ChurchSuite confirmation lives in the fixed dialog footer */
.sheet-fixed-footer:has(.churchsuite-confirm-footer){
  display:block!important;
  padding:0!important;
  overflow:hidden!important;
}

.churchsuite-confirm-footer{
  width:100%;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "summary actions"
    "check actions";
  gap:8px 16px;
  align-items:center;
  padding:11px 18px;
  background:var(--panel);
}

.churchsuite-confirm-footer:not(.has-changes){
  display:flex;
  justify-content:flex-end;
  padding:11px 18px;
}

.churchsuite-confirm-summary{
  grid-area:summary;
  min-width:0;
  max-height:92px;
  overflow-y:auto;
  padding:7px 10px;
  border:1px solid rgba(232,142,57,.22);
  border-radius:9px;
  background:rgba(232,142,57,.07);
  color:var(--ink);
  font-size:10.5px;
  line-height:1.35;
}

.churchsuite-confirm-summary strong{
  font-weight:750;
}

.churchsuite-confirm-summary p{
  margin:3px 0 5px;
}

.churchsuite-confirm-summary ul{
  margin:4px 0 0 17px;
  padding:0;
}

.churchsuite-confirm-summary li{
  margin:2px 0;
}

.churchsuite-confirm-check{
  grid-area:check;
  display:flex;
  align-items:flex-start;
  gap:7px;
  min-width:0;
  font-size:11px;
  font-weight:650;
  color:var(--ink);
  cursor:pointer;
}

.churchsuite-confirm-check input{
  flex:0 0 auto;
  width:16px;
  height:16px;
  margin:0;
}

.churchsuite-confirm-actions{
  grid-area:actions;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  white-space:nowrap;
}

@media(max-width:700px){
  .churchsuite-confirm-footer{
    grid-template-columns:1fr;
    grid-template-areas:
      "summary"
      "check"
      "actions";
    gap:7px;
    padding:9px 12px calc(9px + env(safe-area-inset-bottom));
  }

  .churchsuite-confirm-summary{
    max-height:76px;
    font-size:10px;
  }

  .churchsuite-confirm-check{
    font-size:10.5px;
  }

  .churchsuite-confirm-actions{
    width:100%;
    justify-content:space-between;
  }

  .churchsuite-confirm-actions button{
    min-height:40px!important;
  }

  .sheet-fixed-footer:has(.churchsuite-confirm-footer){
    overflow:visible!important;
  }
}

/* v85 top-level Song Library delete */
.library-song-row{
  grid-template-columns:auto minmax(0,1fr) auto!important;
}
.library-song-delete{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  padding:0!important;
  align-self:center;
}
.song-usage-list{
  margin:8px 0 0;
  padding-left:20px;
}
@media(max-width:700px){
  .library-song-row{
    grid-template-columns:auto minmax(0,1fr) auto!important;
  }
  .library-song-delete{
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
  }
}

/* v86 Service Planner fixes */
.churchsuite-not-synced-chip{
  display:inline-flex;
  align-items:center;
  padding:2px 7px;
  border-radius:999px;
  background:rgba(110,110,115,.09);
  color:#69696e;
  font-size:9.5px;
  font-weight:650;
}
.upload-progress-note{
  margin:10px 0 0;
  font-weight:650;
}
.footer-churchsuite-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none!important;
  white-space:nowrap;
}
#redoBtn:disabled{
  opacity:.38;
  cursor:default;
}
@media(max-width:700px){
  #plannerFooter #undoBtn,
  #plannerFooter #redoBtn{
    padding-left:6px!important;
    padding-right:6px!important;
  }
  #plannerFooter #undoBtn span,
  #plannerFooter #redoBtn span{
    display:none;
  }
  #plannerFooter .footer-churchsuite-link{
    padding-left:7px!important;
    padding-right:7px!important;
    font-size:10px!important;
  }
}

/* v87 ChurchSuite base-address note + mobile footer fit */
.churchsuite-plan-link-missing{
  max-width:1040px;margin:0 auto 10px;padding:6px 9px;border-radius:8px;
  background:rgba(55,105,160,.06);border:1px solid rgba(55,105,160,.14);
  color:#526679;font-size:10.5px
}
.churchsuite-plan-link-missing[hidden]{display:none!important}

@media(max-width:700px){
  :root{--app-footer-h:88px}
  #plannerFooter{height:var(--app-footer-h)!important}
  #plannerFooter .footer-inner{
    height:100%;display:flex!important;align-items:stretch!important;gap:4px!important;
    padding:7px 8px calc(7px + env(safe-area-inset-bottom))!important;overflow:hidden!important
  }
  #plannerFooter .footer-inner>button,
  #plannerFooter .footer-inner>a{
    flex:1 1 0!important;min-width:0!important;width:auto!important;height:auto!important;
    padding:5px 3px!important;white-space:normal!important;overflow-wrap:anywhere!important;
    line-height:1.05!important;text-align:center!important;font-size:9.5px!important;
    display:flex!important;align-items:center!important;justify-content:center!important;gap:2px!important
  }
  #plannerFooter #addBtn{flex:.85 1 0!important;width:auto!important;min-width:0!important}
  #plannerFooter #undoBtn,#plannerFooter #redoBtn{flex:.55 1 0!important}
  #plannerFooter #undoBtn span,#plannerFooter #redoBtn span{display:block!important;font-size:8.5px!important}
  #plannerFooter .footer-sync-cs{flex:1.05 1 0!important;flex-direction:column!important}
  #plannerFooter .footer-sync-cs .sync-icon{font-size:14px!important}
  #plannerFooter .footer-churchsuite-link{flex:1 1 0!important}
  #plannerFooter #openLPViewBtn{flex:.95 1 0!important}
}

/* v90 OpenLP Planner retained-media folders */
.planner-folder-list,
.planner-media-folder-picker{
  display:grid;
  gap:9px;
}
.planner-library-folder{
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel);
  overflow:hidden;
}
.planner-library-folder>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  cursor:pointer;
  background:color-mix(in srgb,var(--soft) 65%,var(--panel));
}
.planner-folder-name{
  min-width:0;
  display:flex;
  align-items:center;
  gap:7px;
}
.planner-folder-name strong{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}
.planner-folder-name small{
  color:var(--muted);
  white-space:nowrap;
}
.folder-icon{
  font-size:14px;
  opacity:.7;
}
.planner-folder-actions{
  display:flex;
  align-items:center;
  gap:7px;
}
.planner-folder-actions button:disabled{
  opacity:.35;
}
.planner-library-folder>.media-library-list,
.planner-library-folder>.planner-media-picker{
  padding:8px;
}
.folder-media-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.empty-folder-note{
  padding:6px 4px;
}
@media(max-width:700px){
  .planner-library-folder>summary{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .planner-folder-name{
    flex:1 1 100%;
  }
  .planner-folder-actions{
    margin-left:21px;
  }
  .folder-media-actions{
    flex-direction:column;
    align-items:flex-end;
  }
}


/* v93 OpenLP export controls live entirely in the fixed dialog footer */
#sheetFooter .export-footer-controls{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
#sheetFooter .export-footer-note{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
#sheetFooter .export-footer-checkbox{
  display:flex;
  align-items:center;
  gap:7px;
  font-weight:650;
  line-height:1.15;
  cursor:pointer;
}
#sheetFooter .export-footer-checkbox input{
  width:17px;
  height:17px;
  flex:0 0 auto;
}
#sheetFooter .export-footer-note small{
  color:var(--muted);
  font-size:10px;
  line-height:1.2;
  max-width:560px;
}
#sheetFooter .export-footer-buttons{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  gap:8px;
}
@media(max-width:700px){
  #sheetFooter .export-footer-controls{
    align-items:stretch;
    gap:7px;
  }
  #sheetFooter .export-footer-note{
    justify-content:center;
  }
  #sheetFooter .export-footer-checkbox{
    font-size:10px;
  }
  #sheetFooter .export-footer-checkbox input{
    width:15px;
    height:15px;
  }
  #sheetFooter .export-footer-note small{
    font-size:8.5px;
    line-height:1.12;
  }
  #sheetFooter .export-footer-buttons{
    flex-direction:column;
    justify-content:center;
    gap:4px;
    max-width:43%;
  }
  #sheetFooter .export-footer-buttons .primary{
    width:100%;
    white-space:normal;
    line-height:1.05;
    padding:6px 7px;
  }
}

/* v96 Bible Gateway helper / optional paste parsing */
.bible-gateway-tools{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:4px 0 8px;
}
.bible-clean-toggle{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  font-weight:650;
  color:var(--ink);
}
.bible-clean-toggle input{
  width:16px;
  height:16px;
  margin:0;
}
.bible-paste-status{
  min-height:14px;
  margin-top:5px!important;
}
@media(max-width:700px){
  .bible-gateway-tools{
    align-items:stretch;
    flex-direction:column;
  }
  .bible-gateway-tools button{
    width:100%;
  }
}

/* v97 growing Extensions section / published ChurchSuite directory */
.extension-nested-card{
  margin-top:14px;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--soft);
}
.extension-nested-card .toggle{margin:0 0 5px}
.path-input-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:5px;
}
.path-input-row>span{
  color:var(--muted);
  font-weight:700;
}
.published-directory-preview{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:8px;
  padding-top:9px;
  border-top:1px solid var(--line);
  font-size:11px;
}
.published-directory-preview span{color:var(--muted)}
.published-directory-preview a{
  color:var(--accent);
  font-weight:650;
  text-decoration:none;
}
@media(max-width:700px){
  .published-directory-preview{
    align-items:flex-start;
    flex-direction:column;
  }
}

/* v98 published ChurchSuite directory display options */
.published-directory-options{
  margin:10px 0 2px;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
}
.published-directory-options .toggle{
  margin:0 0 3px;
}
.published-directory-options .meta{
  margin:0 0 10px;
}
.published-directory-options .meta:last-child{
  margin-bottom:0;
}

/* v101 direct media-library uploads + full-size previews */
.media-library-head-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.full-media-preview{
  width:100%;
  height:min(68dvh,760px);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  background:#111;
}
.full-media-preview img{
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
.full-media-preview video{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#000;
}
.media-preview-page{
  text-align:center;
  margin:7px 0 0;
}
.direct-library-new-folder{
  display:flex;
  justify-content:flex-start;
  margin:-3px 0 8px;
}
@media(max-width:700px){
  .media-library-head-actions{
    width:100%;
  }
  .media-library-head-actions button{
    flex:1 1 auto;
  }
  .full-media-preview{
    height:58dvh;
    border-radius:9px;
  }
  .folder-media-actions{
    max-width:130px;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
}

/* v102 media library selection / folder-add / drag-drop */
.media-select-check{
  width:16px;
  height:16px;
  flex:0 0 auto;
}
.folder-media-row{
  grid-template-columns:auto auto minmax(0,1fr) auto!important;
}
.locked-library-folder{
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--soft);
  font-weight:650;
}
.planner-library-folder.media-drop-target{
  outline:2px solid rgba(0,113,227,.25);
  outline-offset:2px;
  background:rgba(0,113,227,.035);
}
.dragging-media{
  opacity:.55;
}
@media(max-width:700px){
  .folder-media-row{
    grid-template-columns:auto auto minmax(0,1fr)!important;
  }
  .folder-media-row .folder-media-actions{
    grid-column:2/4;
  }
}

/* v103 service-specific folders match retained folder headers */
.service-media-folder.planner-library-folder>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.service-folder-date{
  color:var(--muted);
  font-size:10px;
  white-space:nowrap;
}
@media(max-width:700px){
  .service-media-folder.planner-library-folder>summary{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .service-folder-date{
    margin-left:21px;
  }
}

/* v105 image filename ordering */
.image-order-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:4px 0 7px;
}
.image-order-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.media-select{width:17px;height:17px;margin:0;cursor:pointer;accent-color:var(--accent)}
@media(max-width:700px){.image-order-actions{width:100%;justify-content:flex-start}}
@media(max-width:700px){
  .image-order-toolbar{
    align-items:stretch;
    flex-wrap:wrap;
  }
}

/* v109 subtle image controls + song statistics */
.image-thumb-button{border:0;background:transparent;padding:0;cursor:zoom-in;border-radius:7px}
.image-thumb-button:hover{background:var(--soft)}
.media-mini-action{border:0;background:transparent;color:var(--muted);font-size:10px;padding:4px 5px;cursor:pointer}
.media-mini-action:hover{color:var(--ink);text-decoration:underline}
.service-media-folder.planner-library-folder>summary .planner-folder-name strong{font-size:14px}
.song-stats-summary{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:baseline;margin:10px 0 14px}
.song-stats-summary strong{font-size:22px}
.song-stats-summary span{color:var(--muted)}
.song-stats-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}
.song-stat-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:9px 4px;border-bottom:1px solid var(--line)}
.song-stat-row small{display:block;color:var(--muted);margin-top:2px}
.song-stat-rank{color:var(--muted);font-variant-numeric:tabular-nums}

/* v110 quieter media-library editing */
.library-preview-button{
  border:0;
  background:transparent;
  padding:0;
  border-radius:8px;
  cursor:zoom-in;
  line-height:0;
}
.library-preview-button:hover,
.library-preview-button:focus-visible{
  background:var(--soft);
  outline:1px solid var(--line);
}
.video-preview-button{
  cursor:pointer;
}
.media-quiet-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:2px;
  flex-wrap:nowrap;
}
.media-icon-action{
  width:28px;
  min-width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--muted);
  font-size:15px;
  cursor:pointer;
}
.media-icon-action:hover,
.media-icon-action:focus-visible{
  background:var(--soft);
  color:var(--ink);
}
.media-icon-action.danger-quiet:hover{
  background:rgba(190,69,62,.08);
  color:#92514c;
}
.media-icon-action:disabled{
  opacity:.28;
  cursor:not-allowed;
}
.store-action{
  font-size:18px;
}
.media-library-row:hover .media-quiet-actions .media-icon-action{
  color:var(--ink);
}
@media(max-width:700px){
  .media-quiet-actions{
    gap:0;
    max-width:none!important;
  }
  .media-icon-action{
    width:32px;
    min-width:32px;
    height:32px;
  }
}

/* v111 preview return + song-stat date range */
.song-stats-filter{
  margin:10px 0 12px;
  padding:10px 11px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--soft);
}
.choice-inline{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-right:14px;
  font-size:12px;
  font-weight:650;
}
.song-stats-date-range{
  display:flex;
  align-items:flex-end;
  gap:8px;
  flex-wrap:wrap;
  margin-top:9px;
}
.song-stats-date-range .field{
  margin:0;
  min-width:145px;
}
.song-stats-period{
  margin-top:-5px;
  margin-bottom:11px;
}
@media(max-width:700px){
  .song-stats-date-range{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .song-stats-date-range button{
    grid-column:1/-1;
  }
}

/* v112 song-stat multi-service filtering */
.song-stats-filter-section{
  margin-bottom:10px;
}
.song-stats-filter-section>strong{
  display:block;
  margin-bottom:5px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:var(--muted);
}
.song-stats-service-filter-head{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  margin-bottom:5px;
}
.song-stats-service-picker{
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel);
  overflow:hidden;
}
.song-stats-service-picker>summary{
  cursor:pointer;
  padding:9px 10px;
  font-weight:650;
  font-size:12px;
}
.song-stats-service-actions{
  display:flex;
  gap:10px;
  padding:5px 10px 7px;
  border-top:1px solid var(--line);
}
.song-stats-service-list{
  max-height:240px;
  overflow:auto;
  border-top:1px solid var(--line);
}
.song-stats-service-row{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-bottom:1px solid var(--line);
}
.song-stats-service-row:last-child{border-bottom:0}
.song-stats-service-row span{min-width:0}
.song-stats-service-row strong{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.song-stats-service-row small{
  display:block;
  color:var(--muted);
  margin-top:1px;
}
.song-stats-apply{
  margin-top:2px;
}

/* v113 configurable regular service types */
.regular-service-types-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:9px;
}
.regular-service-type-row{
  display:grid;
  grid-template-columns:minmax(160px,1.5fr) minmax(120px,.8fr) minmax(160px,1fr) auto;
  align-items:end;
  gap:8px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--soft);
}
.regular-service-type-row .field{margin:0}
.regular-service-type-row .rst-delete{margin-bottom:2px}
.new-service-usual-day{
  margin:-4px 0 10px;
}
@media(max-width:700px){
  .regular-service-type-row{
    grid-template-columns:1fr 1fr auto;
  }
  .regular-service-type-row .field:first-child{
    grid-column:1/-2;
  }
  .regular-service-type-row .field:nth-child(3){
    grid-column:1/-1;
  }
  .regular-service-type-row .rst-delete{
    grid-column:3;
    grid-row:1;
    align-self:center;
  }
}

/* v114 explicit ChurchSuite → Planner service mapping */
.churchsuite-service-mappings-list{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-top:8px;
}
.churchsuite-service-mapping-row{
  display:grid;
  grid-template-columns:minmax(150px,1fr) auto minmax(170px,1fr) auto;
  gap:8px;
  align-items:center;
  padding:9px 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--soft);
}
.churchsuite-service-mapping-row>div{
  min-width:0;
}
.churchsuite-service-mapping-row strong{
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.churchsuite-service-mapping-row small{
  display:block;
  color:var(--muted);
  margin-top:1px;
}
.mapping-arrow{
  color:var(--muted);
  font-size:14px;
}
@media(max-width:700px){
  .churchsuite-service-mapping-row{
    grid-template-columns:1fr auto;
  }
  .churchsuite-service-mapping-row select{
    grid-column:1/-2;
  }
  .churchsuite-service-mapping-row .cs-mapping-delete{
    grid-column:-2/-1;
    grid-row:2;
    align-self:center;
  }
}

/* v116 database backup / restore */
.backup-restore-summary{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:5px 12px;
  padding:10px 12px;
  margin:10px 0;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--soft);
}
.backup-restore-summary span{color:var(--muted)}

/* v117 full backup / media restore */
.backup-kind-card{
  padding:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--soft);
  margin:9px 0;
}
.backup-kind-card>div:first-child>strong{
  display:block;
  font-size:14px;
  margin-bottom:2px;
}
.backup-kind-card .settings-actions{
  margin-top:9px;
}
.compact-backup-card{
  background:transparent;
}

/* v118 ChurchSuite past-service sync override */
.cs-sync-window{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  padding:10px 11px;
  margin-bottom:8px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--soft);
}
.cs-sync-window>div:first-child{
  min-width:0;
}
.cs-sync-window>div:first-child .meta{
  margin:2px 0 0;
}
.cs-sync-window-controls{
  display:flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
}
.cs-auto-plan-row.today-plan{
  background:rgba(61,139,90,.045);
}
.cs-auto-plan-row.past-plan{
  background:rgba(110,110,115,.035);
}
.cs-auto-plan-row.past-plan small{
  color:var(--muted);
}
@media(max-width:700px){
  .cs-sync-window{
    align-items:stretch;
    flex-direction:column;
  }
  .cs-sync-window-controls{
    width:100%;
  }
  .cs-sync-window-controls select{
    min-width:0;
    flex:1 1 auto;
  }
}

/* v119 Bible paste parser cross-check */
.bible-removed-review{
  margin-top:8px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--soft);
  overflow:hidden;
}
.bible-removed-review>summary{
  cursor:pointer;
  padding:8px 10px;
  font-size:11px;
  font-weight:700;
  color:var(--muted);
}
.bible-removed-list{
  border-top:1px solid var(--line);
  max-height:190px;
  overflow:auto;
}
.bible-removed-row{
  display:grid;
  grid-template-columns:120px minmax(0,1fr);
  gap:8px;
  padding:7px 10px;
  border-bottom:1px solid var(--line);
  font-size:11px;
}
.bible-removed-row:last-child{border-bottom:0}
.bible-removed-row strong{
  color:var(--muted);
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.bible-removed-row span{
  white-space:normal;
  overflow-wrap:anywhere;
}
@media(max-width:700px){
  .bible-removed-row{
    grid-template-columns:1fr;
    gap:2px;
  }
}

/* v120 Settings OpenLP themes */
.settings-theme-list{
  display:flex;
  flex-direction:column;
  gap:5px;
  margin-top:8px;
}
.settings-theme-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto 30px;
  align-items:center;
  gap:8px;
  min-height:38px;
  padding:5px 7px 5px 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--soft);
}
.settings-theme-row>span{
  font-size:13px;
  font-weight:650;
  overflow-wrap:anywhere;
}
.settings-theme-row>small{
  color:var(--muted);
  font-size:10px;
}
.settings-theme-row:not(:has(button)){
  grid-template-columns:minmax(0,1fr) auto;
}
@media(max-width:700px){
  .settings-theme-row{
    grid-template-columns:minmax(0,1fr) 30px;
  }
  .settings-theme-row>small{display:none}
  .settings-theme-row:not(:has(button)){grid-template-columns:1fr}
}

/* v121 empty status + Bible number formatting preview */
.service-progress-empty{
  background:rgba(110,110,115,.10);
  color:var(--muted);
}
.bible-formatting-preview{
  margin-top:8px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--soft);
  overflow:hidden;
}
.bible-formatting-preview>summary{
  cursor:pointer;
  padding:8px 10px;
  font-size:11px;
  font-weight:700;
  color:var(--muted);
}
.bible-formatting-preview>div{
  border-top:1px solid var(--line);
  padding:10px 12px;
  font-size:14px;
  line-height:1.55;
  white-space:normal;
}
.bible-formatting-preview sup{
  font-size:.68em;
  vertical-align:super;
  line-height:0;
}

/* v124 — clear projector mark beside the main service controls */
.planner-export-stack{
  display:inline-flex;
  flex-direction:column;
  align-items:stretch;
  gap:1px;
  min-width:0;
}
.planner-export-stack #exportBtn{
  width:100%;
}
.planner-clear-download{
  border:0;
  background:transparent;
  color:var(--muted);
  padding:1px 3px 0;
  min-height:0;
  font:inherit;
  font-size:9px;
  line-height:1.15;
  cursor:pointer;
  text-align:center;
  white-space:nowrap;
}
.planner-clear-download:hover,
.planner-clear-download:focus-visible{
  color:var(--ink);
  text-decoration:underline;
}
@media(max-width:700px){
  .planner-clear-download{
    font-size:8.5px;
    white-space:normal;
    max-width:88px;
    margin-inline:auto;
  }
}

.permission-levels{display:grid;gap:6px;margin-top:9px}.permission-levels>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--soft)}
.permission-levels span{color:var(--muted);font-size:11px}.planner-user-list{display:flex;flex-direction:column;gap:5px;margin-top:10px}
.planner-user-row{width:100%;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;background:var(--panel);padding:8px 10px;color:var(--ink)}.planner-user-main{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:10px;border:0;background:transparent;color:inherit;text-align:left;padding:1px 0;cursor:pointer}.user-sso-toggles{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.user-sso-toggles label{font-size:11px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap}.user-sso-toggles input{margin:0}
.planner-user-main span:first-child{min-width:0}.planner-user-main strong,.planner-user-main small{display:block}.planner-user-main small{color:var(--muted);margin-top:2px}
.user-access-chip{flex:0 0 auto;border-radius:999px;padding:3px 7px;font-size:10px;font-weight:700;background:rgba(110,110,115,.09);color:#666}
.user-access-chip.level-2{background:rgba(0,113,227,.08);color:#3f6f9f}.user-access-chip.level-3{background:rgba(61,139,90,.10);color:#447454}
@media(max-width:600px){.permission-levels>div{grid-template-columns:1fr;gap:2px}.planner-user-row{align-items:stretch;flex-direction:column}.planner-user-main{width:100%}.user-sso-toggles{padding-top:4px;border-top:1px solid var(--line);width:100%}}

/* v138 Song Library imports / classifications / Settings tabs */
.settings-nav{position:sticky;top:-1px;z-index:20;display:flex;gap:4px;overflow-x:auto;margin:-8px -4px 18px;padding:7px 4px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}
.settings-nav button{flex:0 0 auto;border:0;background:transparent;color:var(--muted);border-radius:999px;padding:7px 10px;font:650 11px inherit;cursor:pointer}
.settings-nav button.active{background:var(--ink);color:white}
.library-classification-filter{min-width:180px}
.song-library-fixed-footer{position:sticky;bottom:-1px;z-index:20;display:flex;justify-content:flex-end;margin:18px -2px -2px;padding:14px 2px 2px;background:linear-gradient(to bottom,rgba(255,255,255,0),rgba(255,255,255,.97) 25%)}
.song-library-fixed-footer .primary{min-width:112px;box-shadow:0 4px 15px rgba(0,0,0,.12)}
.song-import-choice-grid{grid-template-columns:1fr}
.song-classification-chips{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.song-classification-chips span{display:inline-flex;padding:2px 6px;border-radius:999px;background:rgba(110,110,115,.08);color:#626267;font-size:9px;font-weight:650}
.song-classification-editor{margin:20px 0;padding:14px;border:1px solid var(--line);border-radius:13px;background:rgba(0,0,0,.018)}
.song-classification-editor h3{margin:0 0 10px;font-size:14px}
.song-classification-group{border:0;padding:0;margin:0 0 14px}
.song-classification-group legend{padding:0;margin-bottom:7px;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.045em}
.song-classification-options{display:flex;gap:6px;flex-wrap:wrap}
.classification-option{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:white;font-size:11px;cursor:pointer}
.classification-option input{margin:0}
.song-classification-group small{display:block;color:var(--muted);font-size:9px;margin-top:5px}
.classification-admin-list{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.classification-admin-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);color:var(--ink);padding:10px 11px;text-align:left}
.classification-admin-row strong,.classification-admin-row small{display:block}.classification-admin-row small{color:var(--muted);margin-top:2px}.classification-admin-row>span:last-child{color:var(--muted);font-size:10px}
.classification-item-editor{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.classification-item-row{display:grid;grid-template-columns:minmax(0,1fr) 34px;gap:6px;align-items:center}
.classification-item-row input{width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 10px;background:#fafaf7}
.import-summary{display:flex;flex-direction:column;gap:3px;margin:14px 0}.import-summary span{color:var(--muted);font-size:11px}
.import-review-list{border:1px solid var(--line);border-radius:11px;overflow:hidden}.import-review-list>div{padding:9px 10px;border-bottom:1px solid var(--line)}.import-review-list>div:last-child{border-bottom:0}.import-review-list strong,.import-review-list span{display:block}.import-review-list span{color:var(--muted);font-size:10px;margin-top:2px}
@media(max-width:700px){.library-classification-filter{min-width:0}.settings-nav{margin-left:-2px;margin-right:-2px}}


/* v139 — service-specific media grouped by service item */
.service-item-media-folders{
  padding:8px 10px 12px 28px;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.service-item-media-folder{
  border:1px solid var(--line);
  border-radius:11px;
  overflow:hidden;
  background:rgba(255,255,255,.7);
}
.service-item-media-folder>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:9px 11px;
  cursor:pointer;
  list-style:none;
}
.service-item-media-folder>summary::-webkit-details-marker{display:none}
.service-item-media-folder>summary .planner-folder-name strong{font-size:13px}
.service-item-media-folder>summary .planner-folder-name small{font-size:10px;color:var(--muted)}
.service-item-media-folder .media-library-list{
  border-top:1px solid var(--line);
}
@media(max-width:700px){
  .service-item-media-folders{padding-left:14px;padding-right:4px}
}


/* v142 — classification access from song lists and service plans */
.song-result-with-action{
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px;
  gap:8px;
  align-items:center;
}
.song-result-main{min-width:0}
.song-classify-action{
  flex:0 0 auto;
  align-self:center;
}
.classification-song-head{
  margin:4px 0 12px;
}
.classification-song-head strong,
.classification-song-head span{display:block}
.classification-song-head span{
  margin-top:2px;
  color:var(--muted);
  font-size:11px;
}
.quick-classification-editor{margin-top:10px}
.song-preview-classifications{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:14px 0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(0,0,0,.018);
}
.song-preview-classifications>div strong,
.song-preview-classifications>div span{display:block}
.song-preview-classifications>div span{
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.service-song-library-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}
.song-stat-main{min-width:0;flex:1}
.song-stat-row .song-classify-action{margin-left:auto}
@media(max-width:600px){
  .song-preview-classifications{align-items:flex-start;flex-direction:column}
  .service-song-library-actions{grid-template-columns:1fr}
}


/* v143 — clearer song classification controls */
.song-classify-action{white-space:nowrap;flex:0 0 auto}
.song-classification-summary-text{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
  line-height:1.3;
}
.service-song-classification-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:12px 0 8px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:rgba(0,0,0,.018);
}
.service-song-classification-summary>div strong,
.service-song-classification-summary>div span{display:block}
.service-song-classification-summary>div span{
  margin-top:2px;
  color:var(--muted);
  font-size:10px;
}
.song-result-with-action{grid-template-columns:minmax(0,1fr) auto}
@media(max-width:600px){
  .service-song-classification-summary{align-items:flex-start;flex-direction:column}
}


/* v144 — Bible parser review + optional automatic fetch */
.bible-removed-review{
  margin-top:10px;
  border:1px solid var(--line);
  border-radius:11px;
  overflow:hidden;
  background:rgba(0,0,0,.018);
}
.bible-removed-review-head{
  padding:8px 10px 5px;
  color:var(--muted);
  font-size:10px;
  font-weight:700;
}
.bible-removed-preview{
  padding-top:0;
}
.bible-removed-more{
  border-top:1px solid var(--line);
}
.bible-removed-more>summary{
  cursor:pointer;
  padding:7px 10px;
  color:var(--muted);
  font-size:10px;
  font-weight:650;
}
.bible-gateway-tools{
  flex-wrap:wrap;
}

/* v145 — bulk song classification */
.bulk-classification-editor{display:flex;flex-direction:column;gap:10px;margin:12px 0}
.bulk-classification-group{border:1px solid var(--line);border-radius:11px;padding:10px}
.bulk-classification-row{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:10px;align-items:center;padding:5px 0}
.bulk-classification-row select{width:100%}
@media(max-width:560px){.bulk-classification-row{grid-template-columns:1fr}.bulk-classification-row select{max-width:none}}


/* v148 — visual consistency pass */
/* Dialog structure: one header, one scrolling body and one fixed action footer. */
.sheet-fixed-header{background:var(--panel);border-bottom:1px solid var(--line)}
.sheet-scroll-body> :first-child{margin-top:0}
.sheet-scroll-body> :last-child{margin-bottom:0}
.sheet-fixed-footer{background:var(--panel);border-top:1px solid var(--line)}
.sheet-fixed-footer>.primary,.sheet-fixed-footer>.secondary,.sheet-fixed-footer>.danger,
.sheet-fixed-footer>a.primary,.sheet-fixed-footer>a.secondary{flex:0 0 auto}

/* Common action rows should align and wrap the same way throughout dialogs/settings. */
.settings-actions,.sheet-title-actions,.service-song-library-actions,.bible-gateway-tools{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.settings-actions{margin-top:10px}

/* Settings use a consistent section rhythm and tab treatment. */
.settings-nav{scrollbar-width:none}
.settings-nav::-webkit-scrollbar{display:none}
.settings-nav button{min-height:32px;line-height:1.1}
.settings-section{padding:20px 0}
.settings-section h3{margin-bottom:10px}
.settings-section>.meta:first-of-type{margin-top:0}
.settings-subsection-head{align-items:flex-start;gap:12px}
.permission-levels>div{min-width:0}
.permission-levels span{line-height:1.3}

/* Forms and explanatory text line up predictably. */
.field{min-width:0}
.field label{line-height:1.25}
.meta{overflow-wrap:anywhere}
.warning-card,.backup-kind-card,.service-song-classification-summary{box-sizing:border-box;max-width:100%}

/* Links styled as buttons should match real buttons. */
a.primary,a.secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}
.footer-churchsuite-link{white-space:nowrap}

/* Destructive actions stay visually distinct but obey footer alignment. */
.sheet-fixed-footer>.danger{margin-left:0}
.sheet-fixed-footer>.danger:first-child:last-child{margin-left:auto}

@media(max-width:700px){
  .settings-subsection-head{flex-direction:column;align-items:stretch}
  .settings-subsection-head>button{align-self:flex-start}
  .settings-actions>*{max-width:100%}
  .sheet-fixed-footer>.primary,.sheet-fixed-footer>.secondary,.sheet-fixed-footer>.danger,
  .sheet-fixed-footer>a.primary,.sheet-fixed-footer>a.secondary{max-width:100%}
  .footer-churchsuite-link{white-space:normal;text-align:center}
}


/* v151 — Song Statistics bulk classification */
.song-stat-row{
  align-items:center;
}
.song-stat-check,
.song-stat-check-placeholder{
  width:16px;
  height:16px;
  flex:0 0 16px;
  margin:0;
}
.song-stat-check{
  cursor:pointer;
}
.song-stats-actions{
  flex-wrap:wrap;
}
@media(max-width:600px){
  .song-stat-row{
    grid-template-columns:auto auto minmax(0,1fr);
  }
  .song-stat-row>.song-classify-action{
    grid-column:3;
    justify-self:start;
  }
}


/* v152 — preserve Song Statistics title width after adding selection */
.song-stat-row{
  display:grid;
  grid-template-columns:16px 28px minmax(0,1fr) auto;
  column-gap:10px;
  align-items:center;
  width:100%;
}
.song-stat-check,
.song-stat-check-placeholder{
  grid-column:1;
  width:16px;
  height:16px;
  min-width:16px;
}
.song-stat-rank{
  grid-column:2;
  width:28px;
  min-width:28px;
  text-align:center;
}
.song-stat-main{
  grid-column:3;
  min-width:0;
  width:100%;
}
.song-stat-main>strong,
.song-stat-main>small{
  display:block;
}
.song-stat-main>strong{
  white-space:normal;
  overflow-wrap:normal;
  word-break:normal;
}
.song-stat-main>small{
  overflow-wrap:anywhere;
}
.song-stat-row>.song-classify-action{
  grid-column:4;
  white-space:nowrap;
  justify-self:end;
}

@media(max-width:600px){
  .song-stat-row{
    grid-template-columns:16px 24px minmax(0,1fr);
    column-gap:8px;
  }
  .song-stat-rank{
    width:24px;
    min-width:24px;
  }
  .song-stat-row>.song-classify-action{
    grid-column:3;
    grid-row:2;
    justify-self:start;
    margin-top:5px;
  }
}


/* v153 — manual song creation mirrors shared song structure */
.manual-song-section-area{margin:14px 0 18px}
.manual-section-editor{display:flex;flex-direction:column;gap:10px}
.manual-edit-section{padding:10px;border:1px solid var(--line);border-radius:11px}
.manual-section-head{display:grid;grid-template-columns:minmax(140px,1fr) 90px 34px;gap:8px;align-items:end;margin-bottom:8px}
.compact-field{margin:0}
.manual-section-number input{text-align:center}
.manual-edit-section>textarea{width:100%;min-height:100px}
.manual-section-head .item-delete{align-self:end;margin-bottom:1px}
@media(max-width:560px){
  .manual-section-head{grid-template-columns:minmax(0,1fr) 72px 34px}
}


/* v154 — Administrator Microsoft SSO renewal warning */
.microsoft-sso-renewal-warning{
  position:sticky;
  top:0;
  z-index:10000;
  width:100%;
  padding:10px 16px;
  background:#b42318;
  color:#fff;
  text-align:center;
  box-shadow:0 2px 8px rgba(0,0,0,.18);
  font-size:13px;
}
.microsoft-sso-renewal-warning button{
  margin-left:10px;
  border:1px solid rgba(255,255,255,.65);
  background:transparent;
  color:#fff;
  border-radius:7px;
  padding:4px 8px;
  cursor:pointer;
}
.microsoft-sso-maintenance{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.microsoft-sso-maintenance h4{margin:0 0 10px}
.settings-help-details{
  margin-top:10px;
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
}
.settings-help-details summary{
  cursor:pointer;
  padding:10px 12px;
  font-weight:650;
}
.settings-help-body{padding:0 14px 12px}
.settings-help-body ol{padding-left:22px}
.settings-help-body li{margin:7px 0}
.warning-inline{
  padding:10px 12px;
  border-radius:9px;
  background:#fff1f0;
  color:#8b2b25;
}


/* v156 — keep SSO renewal warning inside the Planner brand area only */
#appHeader .brand{
  position:relative;
  min-width:0;
}
#appHeader .brand>.microsoft-sso-renewal-warning{
  position:absolute;
  inset:-6px -8px;
  z-index:2;
  width:auto;
  min-width:0;
  margin:0;
  padding:5px 9px;
  border:0;
  border-radius:9px;
  background:#b42318;
  color:#fff;
  box-shadow:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  text-align:left;
  font:inherit;
  line-height:1.05;
  cursor:pointer;
  white-space:nowrap;
}
#appHeader .brand>.microsoft-sso-renewal-warning strong{
  font-size:11px;
}
#appHeader .brand>.microsoft-sso-renewal-warning span{
  font-size:10px;
  opacity:.9;
}
@media(max-width:700px){
  #appHeader .brand>.microsoft-sso-renewal-warning{
    inset:-4px -5px;
    padding:4px 6px;
    flex-direction:column;
    gap:1px;
  }
  #appHeader .brand>.microsoft-sso-renewal-warning strong{
    font-size:9px;
  }
  #appHeader .brand>.microsoft-sso-renewal-warning span{
    font-size:9px;
  }
}

.admin-resilience-note{margin-top:16px;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,.018)}
.admin-resilience-note p{margin:4px 0 0}
.settings-help-details .settings-help-details{margin:10px 0;background:rgba(0,0,0,.015)}


/* v158 — multi-select service deletion */
.service-select-cell{
  width:38px;
  min-width:38px;
  text-align:center;
}
.service-select-cell input,
.service-mobile-select{
  width:16px;
  height:16px;
  margin:0;
  cursor:pointer;
}
.service-mobile-head{
  gap:10px;
}
.service-mobile-select{
  flex:0 0 16px;
}
.bulk-delete-service-list{
  max-height:240px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:10px;
  margin:12px 0;
}
.bulk-delete-service-list>div{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:8px 10px;
  border-bottom:1px solid var(--line);
}
.bulk-delete-service-list>div:last-child{
  border-bottom:0;
}
.bulk-delete-service-list span{
  color:var(--muted);
  white-space:nowrap;
}
#servicesDeleteSelectedBtn[hidden]{
  display:none!important;
}


/* v160 — semantic hidden must win over button/link display rules */
[hidden]{
  display:none!important;
}


/* v161 — unmatched ChurchSuite song actions */
.service-song-unmatched-actions{
  display:flex;
  gap:8px;
  margin:10px 0 4px;
  flex-wrap:wrap;
}
.service-song-unmatched-actions>button{
  flex:1 1 180px;
}


/* v164 — service-only / replace-song controls */
.song-save-scope{
  display:grid;
  gap:8px;
  margin:12px 0 16px;
}
.song-save-scope .choice-line{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid var(--line);
  border-radius:11px;
  padding:10px 12px;
  cursor:pointer;
}
.song-save-scope .choice-line input{
  margin-top:3px;
}
.song-save-scope .choice-line span,
.song-save-scope .choice-line strong,
.song-save-scope .choice-line small{
  display:block;
}
.song-save-scope .choice-line small{
  margin-top:2px;
  color:var(--muted);
}


/* v165 — My ChurchSuite sign-in */
a.ms.churchsuite-signin{
  margin-top:-8px;
  background:#303033;
}

/* v173 read-only login-method indicators */
.user-sso-toggles span{font-size:11px;color:var(--muted);display:inline-flex;align-items:center;white-space:nowrap;padding:2px 6px;border-radius:999px;background:rgba(110,110,115,.08)}


/* v1.74 consistent themed application dialogue */
.planner-dialog{border:0;background:transparent;padding:18px;width:min(520px,calc(100vw - 28px));max-width:520px}
.planner-dialog::backdrop{background:rgba(25,25,25,.28);backdrop-filter:blur(3px)}
.planner-dialog-card{background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:24px;box-shadow:0 20px 70px rgba(0,0,0,.20)}
.planner-dialog-card h2{font-size:23px;letter-spacing:-.02em;margin:0 0 12px}
.planner-dialog-card>p{margin:0;line-height:1.5;white-space:pre-wrap;color:var(--ink)}
.planner-dialog-card .field{margin:18px 0 0}
.planner-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:22px}
.planner-dialog-actions .danger{border-radius:12px;padding:10px 15px;cursor:pointer}
@media(max-width:700px){.planner-dialog{padding:12px}.planner-dialog-card{padding:20px;border-radius:18px}.planner-dialog-actions{flex-wrap:wrap}.planner-dialog-actions button{flex:1 1 auto}}


/* v1.75 export footer, service-item save state and ChurchSuite retention */
#sheetFooter .export-footer-controls{align-items:flex-start!important;}
#sheetFooter .export-footer-note{min-width:220px!important;overflow:visible!important;}
#sheetFooter .export-footer-checkbox{width:100%;min-width:0;align-items:flex-start!important;}
#sheetFooter .export-footer-checkbox span{display:block;min-width:0;white-space:normal;overflow-wrap:normal;word-break:normal;}
#sheetFooter .export-footer-note small{display:block;white-space:normal;overflow-wrap:normal;word-break:normal;}
@media(max-width:700px){
  #sheetFooter .export-footer-controls{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  #sheetFooter .export-footer-note{width:100%!important;min-width:0!important;justify-content:flex-start!important;}
  #sheetFooter .export-footer-buttons{width:100%!important;max-width:none!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;}
  #sheetFooter .export-footer-buttons button{width:100%!important;min-width:0!important;}
  #sheetFooter .export-footer-checkbox{font-size:11px!important;line-height:1.3!important;}
  #sheetFooter .export-footer-note small{font-size:9.5px!important;line-height:1.3!important;}
}
#saveItemStay.primary:not(:disabled){font-weight:700;}
#saveItem.exit-unsaved-armed,#saveItemTop.exit-unsaved-armed{background:#9b3a32!important;border-color:#9b3a32!important;color:#fff!important;}
.churchsuite-retain-toggle>span{display:flex;flex-direction:column;gap:3px;padding-right:12px;}
.churchsuite-retain-toggle small{font-size:10px;font-weight:400;color:var(--muted);line-height:1.35;}
.item.churchsuite-retained{background:rgba(80,86,90,.055);}
.churchsuite-retained-chip{display:inline-flex;align-items:center;font-size:9.5px;padding:2px 6px;border-radius:999px;background:rgba(80,86,90,.10);color:var(--muted);}


/* v1.76 service templates */
.template-item-list,.template-manager-list,.template-choice-list{display:flex;flex-direction:column;gap:8px;margin:12px 0;}
.template-item-row,.template-manager-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);}
.template-item-row small,.template-manager-row small{display:block;color:var(--muted);font-size:10px;margin-top:2px;}
.template-position{width:24px;height:24px;display:grid;place-items:center;border-radius:999px;background:var(--soft);font-size:10px;font-weight:700;}
.template-default-choice{box-shadow:inset 0 0 0 1px rgba(73,88,61,.28);background:rgba(73,88,61,.05);}
.item.template-protected{background:rgba(80,86,90,.07);}
.template-item-chip{display:inline-flex;align-items:center;font-size:9.5px;padding:2px 6px;border-radius:999px;background:rgba(80,86,90,.14);color:var(--muted);font-weight:650;}
.template-settings-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(0,0,0,.015);}
.template-settings-summary span{color:var(--muted);font-size:11px;flex:1 1 auto;}
.regular-service-type-row{grid-template-columns:minmax(130px,1.2fr) minmax(110px,.7fr) minmax(150px,1fr) minmax(150px,1fr) auto!important;}
@media(max-width:800px){.template-item-row{grid-template-columns:auto minmax(0,1fr);}.template-item-row select{grid-column:2}.template-manager-row{grid-template-columns:minmax(0,1fr) auto auto}.regular-service-type-row{grid-template-columns:1fr!important;}}

/* v1.76.2 single-service template action */
.service-meta-actions{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}

/* v1.76.3 service header template button */
.service-head-actions{align-self:flex-start;margin-top:18px;}
@media(max-width:700px){.service-head{display:flex;flex-direction:row;align-items:flex-start}.service-head>div:first-child{min-width:0;flex:1}.service-head-actions{display:flex;margin-top:0;margin-left:12px}.service-head-actions .secondary{white-space:nowrap;min-height:40px;padding:8px 12px}}


/* v1.76.7 ChurchSuite subset selection */
.cs-service-subset-toolbar{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;margin:8px 0 12px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(0,0,0,.015);}
.cs-service-subset-toolbar>span{font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap;padding-top:6px;}
.cs-service-subset-toolbar>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.cs-service-subset-toolbar button small{font-size:9px;opacity:.68;margin-left:3px;}
@media(max-width:700px){.cs-service-subset-toolbar{display:block}.cs-service-subset-toolbar>span{display:block;padding:0 0 7px}.cs-service-subset-toolbar>div{justify-content:flex-start}}


/* v1.76.8 ChurchSuite operation locking */
.churchsuite-working-panel{display:grid;grid-template-columns:auto 1fr;column-gap:12px;row-gap:4px;align-items:center;padding:18px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.018);margin:12px 0;}
.churchsuite-working-panel .thinking-spinner{grid-row:1 / span 2;width:22px;height:22px;border:2px solid rgba(0,0,0,.13);border-top-color:currentColor;border-radius:50%;animation:cs-spin .75s linear infinite;}
.churchsuite-working-panel .meta{margin:0;}
@keyframes cs-spin{to{transform:rotate(360deg)}}
.choice-working{pointer-events:none;}


/* v1.76.9 Service Template Library and per-service overrides */
.template-editor-list{display:flex;flex-direction:column;gap:8px;margin:12px 0;}
.template-editor-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(150px,auto) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--panel);}
.template-editor-order{display:grid;grid-template-columns:26px 24px 26px;gap:3px;align-items:center;text-align:center;}
.template-editor-order button{padding:3px!important;min-width:0!important;}
.template-editor-order span{font-size:10px;font-weight:700;color:var(--muted);}
.template-editor-main{min-width:0;}
.template-editor-main input{width:100%;font-weight:650;}
.template-editor-main small{display:block;margin-top:4px;color:var(--muted);font-size:10px;}
.template-service-choice{display:flex;flex-direction:column;gap:7px;margin:12px 0;}
.template-service-choice-row{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:10px;cursor:pointer;}
.template-service-choice-row input{margin-top:3px;}
.template-service-choice-row span{display:flex;flex-direction:column;gap:3px;}
.template-service-choice-row small{font-size:10px;color:var(--muted);}
.service-head-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
#currentServiceTemplateBtn{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
@media(max-width:760px){.template-editor-row{grid-template-columns:auto minmax(0,1fr) auto}.template-editor-row>select{grid-column:2}.service-head-actions{justify-content:flex-start}.service-head{gap:10px}}


/* v1.76.11 create template from Library */
.template-library-create-bar{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:11px 12px;margin:10px 0 12px;border:1px solid var(--line);border-radius:11px;background:rgba(0,0,0,.015);}
.template-library-create-bar>div{display:flex;flex-direction:column;gap:2px;}
.template-library-create-bar span{font-size:10px;color:var(--muted);}
.template-empty-state{padding:18px 14px;text-align:center;border:1px dashed var(--line);border-radius:12px;}
.template-empty-state p{color:var(--muted);font-size:11px;}
.template-create-service-list{display:flex;flex-direction:column;gap:7px;margin:12px 0;}
.template-create-service-list>strong{font-size:11px;}
.template-create-new-service{margin-top:16px;padding:12px;border:1px solid var(--line);border-radius:11px;}
.template-create-new-service>strong{display:block;margin-bottom:3px;}
@media(max-width:700px){.template-library-create-bar{align-items:flex-start;flex-direction:column}.template-library-create-bar button{width:100%}}


/* v1.76.12 editable empty templates */
.template-editor-addbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0;padding:9px 11px;border:1px dashed var(--line);border-radius:10px;}
.template-editor-addbar span{font-size:10px;color:var(--muted);}
@media(max-width:700px){.template-editor-addbar{align-items:stretch;flex-direction:column}.template-editor-addbar button{width:100%}}


/* v1.76.14 batch template confirmation */
.cs-batch-template-list{display:flex;flex-direction:column;gap:8px;margin:12px 0;}
.cs-batch-template-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(180px,.9fr) minmax(180px,.8fr);gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel);}
.cs-batch-template-row>div small{display:block;margin-top:3px;color:var(--muted);font-size:10px;}
.template-default-inline{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--muted);}
@media(max-width:760px){.cs-batch-template-row{grid-template-columns:1fr}.cs-batch-template-row select{width:100%}}

/* v1.76.16 default-template choice during ChurchSuite sync */
.template-default-inline{padding:6px 8px;border-radius:8px;background:rgba(0,0,0,.025);}
.template-default-inline.is-disabled{opacity:.48;}


/* v1.76.17 ordered template song slots */
.churchsuite-extra-song-chip{display:inline-flex;align-items:center;font-size:9.5px;padding:2px 6px;border-radius:999px;background:rgba(176,116,24,.12);color:#8a5c14;font-weight:650;}


/* v1.76.18 empty template Song slots */
.template-song-placeholder-chip{display:inline-flex;align-items:center;font-size:9.5px;padding:2px 6px;border-radius:999px;background:rgba(80,86,90,.09);color:var(--muted);font-weight:650;}


/* v1.76.27 song statistics data controls */
.statistics-delete-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;margin:10px 0;border:1px solid var(--line);border-radius:11px;}
.statistics-delete-card>div:first-child{min-width:0;}
.statistics-delete-card p{margin:3px 0 0;}
.statistics-date-range{display:flex;align-items:end;gap:8px;flex-wrap:wrap;}
.statistics-date-range .field{margin:0;min-width:135px;}
.danger-zone-card{border-color:rgba(170,40,40,.2);}
@media(max-width:760px){.statistics-delete-card{align-items:stretch;flex-direction:column}.statistics-date-range{align-items:stretch;flex-direction:column}.statistics-date-range .field,.statistics-date-range button{width:100%}}

/* ChurchSuite service timestamps */
.churchsuite-service-times{display:flex;flex-direction:column;gap:5px}
.churchsuite-service-times span{display:flex;flex-direction:column;gap:1px}
.churchsuite-service-times small{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}




/* v1.76.36 mobile service header */
@media(max-width:700px){
  .service-head{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:0;
    padding:14px 14px 13px;
    margin:0 0 18px;
    border:1px solid var(--line);
    border-radius:16px;
    background:var(--panel);
  }

  .service-head .title-line{
    min-width:0;
  }

  .service-head h1{
    margin:0;
    font-size:27px;
    line-height:1.08;
    letter-spacing:-.02em;
  }

  .service-head .eyebrow{
    margin-bottom:5px;
  }

  .service-head .meta.service-theme-line{
    display:flex;
    align-items:center;
    gap:7px;
    min-width:0;
    margin-top:8px;
    color:var(--muted);
    font-size:12px;
    white-space:nowrap;
  }

  .service-theme-label{
    flex:0 0 auto;
  }

  #themeBtn{
    display:inline-block;
    min-width:0;
    max-width:calc(100vw - 150px);
    padding:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    word-break:normal;
    overflow-wrap:normal;
    font-size:12px;
    font-weight:650;
    text-align:left;
  }

  .service-head-actions{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:7px;
    width:100%;
    max-width:none;
    margin-top:12px;
    padding-top:11px;
    border-top:1px solid var(--line);
  }

  #currentServiceTemplateBtn{
    width:100%;
    max-width:none;
    min-width:0;
    min-height:34px;
    padding:7px 9px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-align:left;
    font-size:12px;
    border-radius:9px;
  }

  #saveCurrentServiceTemplateBtn{
    width:auto;
    min-width:auto;
    min-height:34px;
    padding:7px 9px;
    font-size:11px;
    border-radius:9px;
    white-space:nowrap;
  }

  .readiness{
    margin-top:14px;
  }
}

/* ============================================================
   v17641 — simplified planner/services chrome
   ============================================================ */
.top-context{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.02em;justify-self:center;white-space:nowrap}
.icon-control{width:38px;height:38px;padding:0!important;display:grid;place-items:center;border-radius:10px;font-size:18px!important}
.icon-control:hover{background:var(--soft)}
.top-actions{display:flex!important;align-items:center!important;justify-content:flex-end;gap:5px!important}
.top-status{margin-right:4px}
.settings-icon{font-size:16px!important}
.app-menu{position:relative}
.app-menu-panel{position:absolute;z-index:4000;min-width:210px;padding:7px;background:var(--panel);border:1px solid var(--line);border-radius:13px;box-shadow:0 14px 38px rgba(0,0,0,.16)}
.app-menu-panel[hidden]{display:none!important}
.header-menu-panel{right:0;top:calc(100% + 8px)}
.footer-menu-panel{left:0;bottom:calc(100% + 10px)}
.menu-section{display:flex;flex-direction:column;gap:2px}
.menu-section[hidden]{display:none!important}
.menu-action{display:flex;width:100%;align-items:center;text-align:left;text-decoration:none;color:inherit;border:0;background:transparent;border-radius:9px;padding:10px 11px;cursor:pointer;font-size:13px}
.menu-action:hover{background:var(--soft)}
.menu-action-primary{font-weight:700}
.subtle-action{color:var(--muted);font-size:12px}
.footer-menu-trigger{display:inline-flex;align-items:center;gap:8px;min-width:112px;justify-content:center}
.planner-footer-inner{justify-content:flex-start}
.openlp-return{font-weight:700}

/* ChurchSuite mode is apparent without changing the status-colour system. */
body.churchsuite-mode .topbar{box-shadow:inset 0 -3px 0 rgba(87,106,137,.22)}
body.churchsuite-mode #plannerContextLabel{color:#596b86}

/* Service identity: date and title share the visual hierarchy. */
.service-head{align-items:flex-start!important}
.service-identity{min-width:0}
.service-date-major{font-size:27px;font-weight:680;letter-spacing:-.02em;line-height:1.08;color:var(--ink);margin-bottom:4px}
.service-head h1{font-size:34px!important;margin:0 0 10px!important;line-height:1.08!important}
.service-theme-line{min-height:30px}
.icon-pill{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;min-width:32px;height:30px;padding:0 8px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.transient-label{position:relative}
.transient-label-text{display:none;white-space:nowrap}
.transient-label.show-label .transient-label-text,.transient-label:hover .transient-label-text,.transient-label:focus .transient-label-text{display:inline}
#themeBtn .transient-label-text{font-size:11px}

/* Planner rows: keep the title dominant and move metadata into subtle visual cues. */
.item{grid-template-columns:34px minmax(0,1fr) auto!important}
.item-title{font-size:15px;font-weight:680}
.item-sub{align-items:center!important;gap:7px!important;color:var(--muted)}
.item-sub .person{font-weight:600;color:#626267}
.item-actions{display:flex;align-items:center;gap:7px}
.status-icon{border:0;background:transparent;padding:4px 6px;border-radius:8px;cursor:pointer;font-weight:800;min-width:30px;min-height:30px}
.status-icon.ready{color:#355843}.status-icon.missing{color:var(--warn)}.status-icon.plan{color:var(--muted)}
.status-icon:hover,.status-icon.show-label{background:var(--soft)}
.item-flags{display:inline-flex;align-items:center;gap:4px}
.item-flag{display:inline-flex;min-width:21px;height:21px;align-items:center;justify-content:center;padding:0 5px;border:1px solid rgba(0,0,0,.06);border-radius:999px;background:rgba(0,0,0,.025);font-size:9px;font-weight:750;color:#737378}
.item-flag.show-label,.item-flag:hover,.item-flag:focus{padding:0 7px}
.item-image-thumb{position:relative;width:54px;height:36px;border-radius:7px;overflow:hidden;display:inline-block;vertical-align:middle;border:1px solid var(--line);background:#eee}
.item-image-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.image-count{position:absolute;right:2px;bottom:2px;min-width:16px;height:16px;padding:0 3px;border-radius:6px;background:rgba(0,0,0,.68);color:#fff;font-size:9px;display:grid;place-items:center}
.autoplay-overlay{position:absolute;left:2px;top:2px;width:18px;height:18px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;font-size:11px;color:#333}
.item-image-empty{width:32px;height:26px;border:1px dashed var(--line);border-radius:6px;display:inline-grid;place-items:center;color:var(--muted)}

/* Services table simplification. */
.services-page-inner{padding-left:max(34px,var(--screen-gutter))!important;padding-right:max(34px,var(--screen-gutter))!important}
.services-page-head h1{margin:0!important;font-size:34px!important}
.services-table th{font-size:10px!important;color:var(--muted)!important;text-transform:uppercase;letter-spacing:.05em}
.service-name-with-type{display:flex;align-items:center;gap:10px;min-width:0}
.service-type-dot{position:relative;width:17px;height:17px;min-width:17px;border-radius:50%;border:0;background:var(--service-type-colour,#777);cursor:pointer;padding:0}
.service-type-dot .transient-label-text{position:absolute;z-index:5;left:24px;top:50%;transform:translateY(-50%);padding:5px 7px;background:#242427;color:white;border-radius:7px;font-size:10px;box-shadow:0 4px 15px rgba(0,0,0,.18)}
.services-open-service strong{font-size:14px!important}
.service-date-cell{white-space:nowrap}.service-date-cell span,.service-date-cell strong,.service-date-cell small{display:block}.service-date-cell .service-day{font-size:12px;font-weight:650}.service-date-cell strong{font-size:13px}.service-date-cell small{font-size:10px;color:var(--muted)}
.service-progress{display:inline-flex!important;position:relative;width:26px;height:26px;border-radius:50%;align-items:center;justify-content:center;padding:0!important;min-width:0!important}
.service-progress .progress-dot{width:10px;height:10px;border-radius:50%;background:currentColor}
.service-progress .transient-label-text{position:absolute;z-index:8;left:32px;top:50%;transform:translateY(-50%);padding:5px 7px;border-radius:7px;background:#242427;color:white;font-size:10px}
.churchsuite-compact-status{display:grid;grid-template-columns:auto minmax(95px,auto) auto minmax(95px,auto);gap:6px;align-items:center}
.cs-icon-action,.cs-icon-muted{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:transparent;color:#596b86;font-size:10px;font-weight:800;padding:0}
.cs-icon-action{cursor:pointer}.cs-icon-action:hover,.cs-icon-action.tap-armed{background:rgba(87,106,137,.09);border-color:rgba(87,106,137,.24)}
.cs-icon-action .transient-label-text{position:absolute;z-index:10;left:34px;top:50%;transform:translateY(-50%);padding:5px 7px;border-radius:7px;background:#242427;color:white;font-size:10px}
.cs-date{font-size:10.5px;color:var(--muted);white-space:nowrap}
.service-actions-cell{width:42px}.service-delete-btn{background:transparent!important;border-color:transparent!important}

/* Library hierarchy */
.library-hub-groups{display:grid;gap:22px}.library-hub-group h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}.library-hub-primary .library-card-major{grid-column:1/-1;padding:22px}.library-card-major strong{font-size:18px}.library-card-minor{opacity:.82}.library-hub-templates{padding-top:18px;border-top:1px solid var(--line)}.single-card-grid{grid-template-columns:1fr!important}
.service-type-colour-field input[type=color]{padding:3px!important;height:43px}

@media(max-width:900px){
  .top-status{display:block!important;max-width:230px!important;font-size:10px}
  .top-status .projector-status-note{display:none!important}
}
@media(max-width:700px){
  :root{--app-header-h:64px!important;--app-footer-h:64px!important;--screen-gutter:22px}
  .topbar{height:64px!important;grid-template-columns:auto 1fr auto!important;grid-template-rows:1fr!important;padding:0 14px!important;gap:6px!important}
  .brand{grid-column:1!important;grid-row:1!important}.top-context{display:none}.top-actions{grid-column:2/4!important;grid-row:1!important}
  .top-status{display:none!important}.icon-control{width:34px;height:34px}
  .app-menu-panel{min-width:200px}.header-menu-panel{right:0;top:42px}.footer-menu-panel{bottom:48px}
  .shell{padding:18px 28px 28px!important}.services-page-inner{padding:18px 28px 30px!important}
  .service-date-major{font-size:21px}.service-head h1{font-size:28px!important}
  .readiness{margin-top:18px!important}
  .service-list .item{grid-template-columns:24px minmax(0,1fr) auto!important;padding:13px 10px!important;gap:7px!important}
  .service-list .item>.item-actions{grid-column:3!important;grid-row:1/3!important;align-self:center!important;flex-direction:column!important}
  .item-image-thumb{width:48px;height:32px}.item-sub{font-size:11px!important}.item-flag{height:19px;min-width:19px}
  .planner-footer-inner{padding:0 18px!important;overflow:visible!important}.footer-menu-trigger{min-width:104px!important;height:42px!important}
  .openlp-return{height:42px!important}
  .services-page-head h1{font-size:28px!important}
  .tidy-mobile-head{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto auto!important;gap:8px!important;align-items:center!important}
  .service-mobile-select{margin:0}.tidy-mobile-head .service-type-dot{align-self:center}.tidy-mobile-head .services-open-service{min-width:0}.tidy-mobile-head .service-progress{justify-self:end}
  .mobile-date-major{display:block;margin-top:4px;font-size:11px;color:var(--muted)}.mobile-date-major small{font-size:9px}
  .churchsuite-mobile-compact{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px;align-items:center;margin-top:10px;padding-top:9px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}
  .library-hub-primary .library-card-major{grid-column:auto}.library-card-major strong{font-size:16px}
}

/* v1.76.42 — compact navigation/action fixes */
#headerMenuBtn{
  width:42px!important;
  height:38px!important;
  border:1px solid var(--line)!important;
  background:var(--soft)!important;
  font-size:21px!important;
  font-weight:800!important;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
#headerMenuBtn:hover,#headerMenuBtn[aria-expanded="true"]{background:#ecece7!important;border-color:#cfcfc8!important}
.service-list-footer-btn{margin-left:2px;white-space:nowrap}
.two-step-action:hover .transient-label-text{display:none!important}
.two-step-action.show-label .transient-label-text,
.two-step-action.tap-armed .transient-label-text{display:inline!important}
#themeBtn.tap-armed{background:var(--soft);border-color:#cfcfc8;color:var(--ink)}
.churchsuite-compact-status{display:flex!important;align-items:flex-start!important;gap:15px!important}
.cs-action-stack{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:3px;min-width:46px}
.cs-action-stack .cs-date{font-size:9.5px;line-height:1.15;text-align:center;white-space:nowrap;color:var(--muted)}
.cs-action-stack .cs-icon-action .transient-label-text{left:50%;top:34px;transform:translateX(-50%);min-width:max-content;max-width:220px;text-align:center}
.churchsuite-mobile-compact{display:flex!important;align-items:flex-start!important;gap:18px!important}
.churchsuite-mobile-compact .cs-action-stack{min-width:52px}
@media(max-width:700px){
  #headerMenuBtn{width:38px!important;height:36px!important;font-size:20px!important}
  .planner-footer-inner{gap:7px!important}
  .service-list-footer-btn{height:42px!important;min-width:94px!important;padding-left:12px!important;padding-right:12px!important}
  .cs-action-stack .cs-date{font-size:9px}
}

/* v1.76.43 — footer repair, transient confirmations and ready-to-export action */
.two-step-action:focus .transient-label-text{display:none!important}
.two-step-action.show-label .transient-label-text,
.two-step-action.tap-armed .transient-label-text{display:inline!important}
#openLPReturnBtn[hidden],
#plannerActionsMenuBtn[hidden],
#churchSuiteActionsWrap[hidden],
#footerPlanStack[hidden]{display:none!important}

/* The planner footer intentionally has two levels: editing/navigation above,
   the finished/export action directly below Plan. */
#plannerFooter{height:112px}
body:not(.services-page-open) .shell{bottom:112px!important}
#plannerFooter .planner-footer-inner{
  min-height:112px;
  align-items:flex-start;
  padding-top:10px;
  padding-bottom:10px;
}
.footer-plan-stack{display:flex;flex-direction:column;gap:7px;align-items:stretch;flex:0 0 auto}
.footer-plan-stack>.app-menu{width:100%}
.footer-plan-stack .footer-menu-trigger{width:100%}
.planner-export-ready{
  min-height:36px;
  border:1px solid #42674c;
  border-radius:11px;
  padding:7px 12px;
  background:#557d5f;
  color:white;
  font-weight:750;
  cursor:pointer;
  white-space:nowrap;
  box-shadow:0 2px 7px rgba(50,90,60,.16);
}
.planner-export-ready:hover,.planner-export-ready:focus{background:#496f53;border-color:#385b42}
#plannerFooter #churchSuiteActionsWrap,
#plannerFooter .service-list-footer-btn,
#plannerFooter .openlp-return{margin-top:1px}

/* OpenLP-only view is a distinct footer state: the edit/export stack disappears
   and the return action cannot be exposed accidentally by responsive CSS. */
body.openlp-only-view #footerPlanStack{display:none!important}
body.openlp-only-view #churchSuiteActionsWrap{display:none!important}
body:not(.openlp-only-view) #openLPReturnBtn{display:none!important}
body.openlp-only-view #openLPReturnBtn:not([hidden]){display:inline-flex!important}

@media(max-width:700px){
  #plannerFooter{height:116px!important}
  body:not(.services-page-open) .shell{bottom:116px!important}
  #plannerFooter .planner-footer-inner{
    min-height:116px;
    padding:9px 12px!important;
    gap:6px!important;
    align-items:flex-start!important;
    overflow:visible!important;
  }
  #plannerFooter .footer-plan-stack{width:82px;min-width:82px;gap:6px}
  #plannerFooter .footer-plan-stack .footer-menu-trigger{min-width:0!important;width:82px!important;height:40px!important;padding:8px 7px!important}
  #plannerFooter .planner-export-ready{width:82px;min-width:0;min-height:38px;padding:6px 5px;font-size:10px;line-height:1.08;white-space:normal}
  #plannerFooter #churchSuiteActionsWrap{flex:0 0 92px;min-width:92px}
  #plannerFooter #churchSuiteActionsMenuBtn{width:92px!important;min-width:92px!important;height:40px!important;padding:8px 6px!important;font-size:11px!important}
  #plannerFooter .service-list-footer-btn{width:82px!important;min-width:82px!important;height:40px!important;padding:8px 6px!important;font-size:11px!important}
  #plannerFooter .openlp-return{min-width:0!important;height:42px!important;padding:8px 11px!important}
  #plannerFooter .footer-menu-panel{bottom:calc(100% + 7px)!important;max-width:calc(100vw - 24px)}
}


/* v1.76.44 — footer alignment and Add Item consistency */
/* Bible Passage uses a split card so BibleGateway can remain directly available;
   make its main action visually identical to the ordinary Add Item choices. */
.choice-with-link .choice-main{
  box-sizing:border-box;
  width:100%;
  margin:0;
  font:inherit;
  color:inherit;
}
.choice-with-link .choice-main strong{
  display:block;
  margin:0 0 4px;
  color:var(--accent);
  font:inherit;
  font-weight:700;
}
.choice-with-link .choice-main span{
  font-size:12px;
  line-height:1.38;
  color:var(--muted);
}
/* Match the same blue title treatment on the other Add Item cards. */
.choice-grid>.choice strong{color:var(--accent)}

/* Edit is the left anchor; ChurchSuite is the right anchor. */
#plannerFooter #churchSuiteActionsWrap{margin-left:auto!important}
#plannerFooter .service-list-footer-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  width:112px;
  min-width:112px;
  min-height:44px;
  white-space:nowrap;
}

@media(max-width:700px){
  .choice-with-link .choice-main{
    padding:16px!important;
    text-indent:0!important;
  }
  .choice-with-link .choice-main strong,
  .choice-with-link .choice-main span{
    margin-left:0!important;
    padding-left:0!important;
    text-indent:0!important;
  }
  #plannerFooter .service-list-footer-btn{
    width:82px!important;
    min-width:82px!important;
    height:40px!important;
    min-height:40px!important;
    padding:8px 6px!important;
    font-size:11px!important;
    gap:4px;
  }
  #plannerFooter #churchSuiteActionsWrap{margin-left:auto!important}
}


/* v1.76.45 — contextual history and cleaner planner footer navigation */
#plannerFooter .planner-footer-inner{position:relative}

/* Services is a neutral back/navigation action and exactly matches Edit. */
#plannerFooter .service-list-footer-btn{
  box-sizing:border-box;
  width:112px;
  min-width:112px;
  height:42px;
  min-height:42px;
  padding:8px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--panel);
  color:var(--ink);
  font:inherit;
  font-weight:650;
  cursor:pointer;
  box-shadow:none;
}
#plannerFooter .service-list-footer-btn:hover,#plannerFooter .service-list-footer-btn:focus{background:var(--soft);border-color:#cfcfc8}
#plannerFooter #plannerActionsMenuBtn{box-sizing:border-box;width:112px!important;min-width:112px!important;height:42px!important;min-height:42px!important}

/* Undo/redo only occupies the centre when history exists. */
#footerHistoryWrap{
  position:absolute;
  left:50%;
  top:10px;
  transform:translateX(-50%);
  z-index:20;
}
#footerHistoryWrap[hidden]{display:none!important}
.footer-history-trigger{
  display:grid;
  place-items:center;
  width:46px;
  height:42px;
  padding:0;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel);
  color:var(--ink);
  font-size:18px;
  font-weight:700;
  cursor:pointer;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.footer-history-trigger:hover,.footer-history-trigger[aria-expanded="true"]{background:var(--soft)}
.footer-history-menu{left:50%!important;transform:translateX(-50%);min-width:138px!important}
.footer-history-menu .menu-action[hidden]{display:none!important}

/* OpenLP-only view gets one quiet return icon and nothing else. */
body.openlp-only-view #plannerFooter .planner-footer-inner{justify-content:center!important;align-items:center!important;padding-top:0!important;padding-bottom:0!important}
body.openlp-only-view #footerPlanStack,
body.openlp-only-view #plannerServiceListBtn,
body.openlp-only-view #footerHistoryWrap,
body.openlp-only-view #churchSuiteActionsWrap{display:none!important}
#plannerFooter .openlp-return{
  display:inline-grid;
  place-items:center;
  width:44px;
  min-width:44px;
  height:42px;
  min-height:42px;
  padding:0;
  margin:0!important;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--panel)!important;
  color:var(--ink)!important;
  font-size:24px;
  line-height:1;
  box-shadow:none;
  cursor:pointer;
}
#plannerFooter .openlp-return:hover,#plannerFooter .openlp-return:focus{background:var(--soft)!important;border-color:#cfcfc8}

@media(max-width:700px){
  #plannerFooter #plannerActionsMenuBtn,
  #plannerFooter .service-list-footer-btn{
    width:82px!important;
    min-width:82px!important;
    height:40px!important;
    min-height:40px!important;
    padding:8px 6px!important;
    font-size:11px!important;
  }
  #footerHistoryWrap{top:9px}
  .footer-history-trigger{width:42px;height:40px;font-size:16px}
  #plannerFooter .openlp-return{width:42px;min-width:42px;height:40px;min-height:40px;font-size:23px}
}
body.openlp-only-view #openLPReturnBtn:not([hidden]){display:grid!important}


/* v1.76.46 — mobile ChurchSuite prompt and footer history placement */
/* Timed ChurchSuite prompts must be allowed to escape the mobile service card. */
@media(max-width:900px){
  .services-mobile-list,
  .service-mobile-card,
  .churchsuite-mobile-compact,
  .cs-action-stack{overflow:visible!important}
  .service-mobile-card{position:relative}
  .cs-action-stack .cs-icon-action .transient-label-text{
    z-index:120!important;
    max-width:min(230px,calc(100vw - 40px))!important;
    white-space:normal!important;
    line-height:1.25!important;
  }
}

/* Services is a compact peer of Edit; older footer flex rules must not stretch it. */
#plannerFooter #plannerServiceListBtn{
  flex:0 0 112px!important;
  width:112px!important;
  min-width:112px!important;
  max-width:112px!important;
}

/* History now lives on the export row and reads as a distinct editing-history action. */
#footerHistoryWrap{
  top:auto!important;
  bottom:10px!important;
}
.footer-history-trigger{
  width:auto!important;
  min-width:106px!important;
  height:36px!important;
  padding:6px 11px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  border-color:#c67a2c!important;
  background:#f3a84f!important;
  color:#3e2a12!important;
  font-size:11px!important;
  font-weight:750!important;
}
.footer-history-trigger:hover,.footer-history-trigger[aria-expanded="true"]{
  background:#e99a3d!important;
  border-color:#ad6722!important;
}
.footer-history-trigger>span:first-child{font-size:15px;line-height:1}
.footer-history-menu{bottom:calc(100% + 7px)!important}

@media(max-width:700px){
  #plannerFooter #plannerServiceListBtn{
    flex:0 0 82px!important;
    width:82px!important;
    min-width:82px!important;
    max-width:82px!important;
  }
  #footerHistoryWrap{
    top:auto!important;
    bottom:9px!important;
  }
  .footer-history-trigger{
    min-width:92px!important;
    height:38px!important;
    padding:6px 8px!important;
    font-size:10px!important;
  }
}

/* v1.76.47 — mobile settings, footer popovers, read-only OpenLP view, export polish */
@media(max-width:700px){
  .regular-service-type-row{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:9px!important;
    padding:12px!important;
  }
  .regular-service-type-row .field,
  .regular-service-type-row .field:first-child,
  .regular-service-type-row .field:nth-child(3),
  .regular-service-type-row .service-type-colour-field{
    grid-column:1!important;
    width:100%!important;
    min-width:0!important;
  }
  .regular-service-type-row .field input,
  .regular-service-type-row .field select{
    width:100%!important;
    min-width:0!important;
  }
  .regular-service-type-row .rst-delete{
    position:absolute!important;
    top:8px!important;
    right:8px!important;
    grid-column:auto!important;
    grid-row:auto!important;
  }
  .regular-service-type-row .field:first-child{padding-right:34px!important}

  #churchSuiteActionsWrap .footer-menu-panel{
    left:auto!important;
    right:0!important;
    transform:none!important;
    width:max-content!important;
    max-width:calc(100vw - 24px)!important;
  }
}

/* OpenLP View is deliberately read-only. */
body.openlp-only-view .service-list .item{cursor:default!important}
body.openlp-only-view .service-list .item-actions,
body.openlp-only-view .service-list .handle,
body.openlp-only-view .inline-ignore-images,
body.openlp-only-view .inline-ignore-video,
body.openlp-only-view .inline-ignore-bible,
body.openlp-only-view #themeBtn,
body.openlp-only-view .service-head-actions{display:none!important}
body.openlp-only-view .service-list .item *{user-select:text}

/* Timed service-type prompt should remain readable on mobile. */
.service-type-edit-action .transient-label-text{min-width:max-content;max-width:min(240px,calc(100vw - 36px));white-space:normal;line-height:1.25}

.unfinished-export-warning p{white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.4}
@media(max-width:700px){
  .unfinished-export-warning{padding:12px!important}
  .unfinished-export-warning strong{display:block;margin-bottom:5px}
  .unfinished-export-warning p{font-size:11px!important;line-height:1.4!important;margin:6px 0!important}
  #sheetFooter .export-footer-buttons{grid-template-columns:1fr 1fr!important}
}


/* v1.76.48 — interaction polish: preferred actions, header account menu, history reset */
.header-account-nav{border-top:1px solid var(--line);margin-top:5px;padding-top:5px}
.header-account-nav .menu-action[hidden]{display:none!important}
.history-reset-action{border-top:1px solid var(--line)!important;margin-top:4px!important;padding-top:10px!important}
.template-save-new-bar{display:flex;justify-content:flex-start;margin-top:14px}

/* When ChurchSuite is available, syncing is the preferred way to add/populate services. */
#servicesFooter.churchsuite-preferred #servicesAddBtn{background:var(--panel)!important;color:var(--ink)!important;border:1px solid var(--line)!important;box-shadow:none!important}
#servicesFooter.churchsuite-preferred #servicesAddBtn:hover,#servicesFooter.churchsuite-preferred #servicesAddBtn:focus{background:var(--soft)!important}
#servicesFooter.churchsuite-preferred #servicesSyncChurchSuiteBtn:not([hidden]){background:#303b35!important;color:#fff!important;border-color:#303b35!important;font-weight:750!important}
#servicesFooter.churchsuite-preferred #servicesSyncChurchSuiteBtn:not([hidden]):hover,#servicesFooter.churchsuite-preferred #servicesSyncChurchSuiteBtn:not([hidden]):focus{background:#222b27!important;border-color:#222b27!important}

/* OpenLP-only view has one action, so make the return control unmistakably primary. */
body.openlp-only-view #plannerFooter .openlp-return{background:#242824!important;color:#fff!important;border-color:#242824!important;box-shadow:0 2px 7px rgba(0,0,0,.16)!important}
body.openlp-only-view #plannerFooter .openlp-return:hover,body.openlp-only-view #plannerFooter .openlp-return:focus{background:#111!important;border-color:#111!important}


/* v1.76.49 — OpenLP view width and reliable export transfer */
body.openlp-only-view .service-list .item{
  grid-template-columns:minmax(0,1fr)!important;
  width:100%!important;
}
body.openlp-only-view .service-list .item>div:nth-child(2){
  grid-column:1!important;
  grid-row:1!important;
  width:100%!important;
  max-width:none!important;
  overflow:visible!important;
}
body.openlp-only-view .service-list .item>.handle,
body.openlp-only-view .service-list .item>.item-actions{display:none!important}
.export-footer-buttons-single{grid-template-columns:minmax(140px,220px)!important;justify-content:end!important}
.transfer-ios-note{margin-top:10px!important;line-height:1.4!important}
@media(max-width:700px){
  body.openlp-only-view .service-list .item{grid-template-columns:minmax(0,1fr)!important;padding-left:12px!important;padding-right:12px!important}
  body.openlp-only-view .service-list .item>div:nth-child(2){grid-column:1!important;grid-row:1!important}
  #sheetFooter .export-footer-buttons.export-footer-buttons-single{grid-template-columns:1fr!important;width:100%!important}
}


/* v1.76.57 — safer collaboration reload and deliberate conflict override */
@media(max-width:900px){
  .churchsuite-mobile-compact .cs-action-stack .cs-icon-action .transient-label-text{
    left:0!important;
    right:auto!important;
    transform:none!important;
    text-align:left!important;
    max-width:min(240px,calc(100vw - 32px))!important;
  }
}

/* v17660 ChurchSuite mapping removal */
.cs-mapping-delete{
  width:34px;
  height:34px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* v17661 ChurchSuite mapping cleanup */
.settings-inline-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.churchsuite-service-mapping-row{
  grid-template-columns:minmax(150px,1fr) auto minmax(170px,1fr) auto auto;
}
@media(max-width:700px){
  .settings-inline-actions{
    width:100%;
    justify-content:flex-start;
  }
  .churchsuite-service-mapping-row{
    grid-template-columns:minmax(0,1fr) auto auto;
  }
  .churchsuite-service-mapping-row>div:first-child{
    grid-column:1/-1;
  }
  .churchsuite-service-mapping-row .mapping-arrow{
    display:none;
  }
  .churchsuite-service-mapping-row select{
    grid-column:1/2;
    min-width:0;
  }
  .churchsuite-service-mapping-row .cs-mapping-delete{
    grid-column:2/3;
    grid-row:auto;
  }
  .churchsuite-service-mapping-row .cs-mapping-forget{
    grid-column:3/4;
  }
}

/* v1.76.62 — ChurchSuite type sync policy */
.churchsuite-type-row{
  display:grid;
  grid-template-columns:minmax(180px,1.35fr) minmax(120px,.8fr) minmax(170px,1fr) auto;
  gap:8px;
  align-items:center;
  margin:8px 0;
}
.churchsuite-type-row input,.churchsuite-type-row select{min-width:0;width:100%;}
@media(max-width:700px){
  .churchsuite-type-row{grid-template-columns:1fr;padding:10px;border:1px solid var(--line);border-radius:12px;}
  .churchsuite-type-row .cs-type-delete{justify-self:end;}
}

/* v1.76.63 ChurchSuite sync choice emphasis */
.cs-import-mode-grid .choice.cs-import-go-to{
  background:var(--text,#24313d);
  border-color:var(--text,#24313d);
  color:#fff;
}
.cs-import-mode-grid .choice.cs-import-go-to strong,
.cs-import-mode-grid .choice.cs-import-go-to span{color:#fff}
.cs-import-mode-grid .choice.cs-import-go-to:hover{filter:brightness(.94)}
.cs-import-mode-grid .choice.cs-import-go-to.selected,
.cs-import-mode-grid .choice.cs-import-go-to.choice-working{
  outline:2px solid currentColor;
  outline-offset:2px;
}

/* v1.76.66 discovered ChurchSuite Type setup */
.discovered-cs-type-name{min-width:0;display:flex;flex-direction:column;gap:2px}
.discovered-cs-type-name small{color:var(--muted);font-size:.78rem}
@media(max-width:700px){
  .discovered-cs-type-row{
    grid-template-columns:1fr!important;
    gap:8px!important;
    align-items:stretch!important;
  }
  .discovered-cs-type-row .cs-type-map,
  .discovered-cs-type-row .cs-type-local-policy{width:100%!important;min-width:0!important}
}

/* v1.76.70 service-aware ChurchSuite template sync preview */
.cs-import-mode-grid .choice.default-selected{box-shadow:0 0 0 3px rgba(255,255,255,.28) inset}
.template-sync-preview-head{margin:14px 0 8px}
.template-sync-final-preview{display:flex;flex-direction:column;gap:7px;margin:8px 0 14px}
.template-sync-preview-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}
.template-sync-preview-row>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.template-sync-preview-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-sync-preview-row small{color:var(--muted)}

/* v1.76.71 — mobile export footer must not overlap marking controls */
@media(max-width:700px){
  #sheetFooter:has(.export-footer-controls){
    overflow:visible!important;
    overflow-x:visible!important;
    min-height:0!important;
    height:auto!important;
    display:block!important;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom))!important;
  }
  #sheetFooter .export-footer-controls{
    width:100%!important;
    max-width:100%!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:10px!important;
    align-items:stretch!important;
    margin:0!important;
  }
  #sheetFooter .export-footer-note{
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  #sheetFooter .export-footer-checkbox{
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    gap:8px!important;
    align-items:start!important;
    width:100%!important;
    min-width:0!important;
  }
  #sheetFooter .export-footer-checkbox input{
    margin:1px 0 0!important;
  }
  #sheetFooter .export-footer-checkbox span{
    min-width:0!important;
    white-space:normal!important;
    overflow-wrap:normal!important;
    word-break:normal!important;
    line-height:1.3!important;
  }
  #sheetFooter .export-footer-buttons,
  #sheetFooter .export-footer-buttons-single{
    grid-row:2!important;
    width:100%!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:0!important;
    margin:0!important;
  }
  #sheetFooter .export-footer-buttons button,
  #sheetFooter .export-footer-buttons-single button{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:44px!important;
    white-space:normal!important;
  }
}

/* v1.76.72 — iOS-safe fixed export footer */
#sheetFooter .export-footer-controls{
  width:100%;
}
#sheetFooter .export-footer-mark-row,
#sheetFooter .export-footer-download-row{
  min-width:0;
}
#sheetFooter .export-footer-mark-row{
  display:flex;
  align-items:flex-start;
}
#sheetFooter .export-footer-download-row{
  display:flex;
  justify-content:flex-end;
}
#sheetFooter .export-footer-checkbox{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-width:0;
}
#sheetFooter .export-footer-checkbox span{
  min-width:0;
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
}
@media(max-width:700px){
  #sheetFooter{
    overflow:visible!important;
    overflow-x:visible!important;
  }
  #sheetFooter .export-footer-controls{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:10px!important;
    width:100%!important;
    max-width:none!important;
    overflow:visible!important;
    align-items:stretch!important;
  }
  #sheetFooter .export-footer-mark-row{
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    position:static!important;
  }
  #sheetFooter .export-footer-download-row{
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    display:block!important;
    position:static!important;
  }
  #sheetFooter .export-footer-download-row button{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
  }
  #sheetFooter .export-footer-checkbox{
    width:100%!important;
    font-size:11px!important;
    line-height:1.35!important;
  }
  #sheetFooter .export-footer-checkbox input{
    flex:0 0 auto!important;
    width:16px!important;
    height:16px!important;
    margin:0!important;
  }
}

/* v1.76.73 — verified in-service default template and result preview */
.cs-import-mode-grid .choice.default-template-choice{
  outline:3px solid rgba(255,255,255,.42);
  outline-offset:-5px;
}
.template-result-preview-heading{margin:14px 0 8px}
.template-result-preview{display:flex;flex-direction:column;gap:7px;margin:8px 0 14px}
.template-result-preview-row{
  display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;align-items:center;
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)
}
.template-result-preview-row>div{min-width:0;display:flex;flex-direction:column;gap:2px}
.template-result-preview-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.template-result-preview-row small{color:var(--muted)}

/* v1.76.74 — clearer in-service default template choice */
.cs-import-mode-grid.service-default-template-state .choice{
  opacity:.46;
  filter:saturate(.65);
  transition:opacity .15s ease,filter .15s ease,border-color .15s ease,background .15s ease;
}
.cs-import-mode-grid.service-default-template-state .choice:hover,
.cs-import-mode-grid.service-default-template-state .choice:focus-visible{
  opacity:.78;
  filter:none;
}
.cs-import-mode-grid.service-default-template-state .choice.default-template-choice{
  opacity:1!important;
  filter:none!important;
  background:var(--text,#24313d)!important;
  color:#fff!important;
  border:2px solid rgba(0,0,0,.78)!important;
  outline:none!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 2px 8px rgba(0,0,0,.12)!important;
}
.cs-import-mode-grid.service-default-template-state .choice.default-template-choice strong,
.cs-import-mode-grid.service-default-template-state .choice.default-template-choice span{
  color:#fff!important;
}
.cs-import-mode-grid.service-default-template-state .choice.default-template-choice:hover,
.cs-import-mode-grid.service-default-template-state .choice.default-template-choice:focus-visible{
  opacity:1!important;
  filter:none!important;
}

/* v1.76.75 — template chooser defaults to service template, then Continue */
.template-chooser-layout{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:14px;align-items:start}
.template-choice-list .choice.selected{border:2px solid var(--text,#24313d);background:var(--soft)}
.template-choice-detail{min-width:0}
.template-choice-detail-card{border:1px solid var(--line);border-radius:13px;padding:14px;background:var(--panel)}
.template-choice-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.template-choice-detail-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.template-choice-detail-head small,.template-theme-detail{color:var(--muted);font-size:10px}
.template-choice-detail-list{margin:12px 0 0;padding-left:22px;display:flex;flex-direction:column;gap:5px;font-size:11px}
.template-choice-detail-list li span{color:var(--muted)}
@media(max-width:700px){
  .template-chooser-layout{grid-template-columns:1fr}
  .template-choice-detail-card{padding:12px}
}

/* v1.76.76 — one consistent ChurchSuite sync-method selection flow */
.cs-import-mode-summary{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin:12px 0 0;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:11px;
  background:var(--soft);
}
.cs-import-mode-summary span{font-size:11px;color:var(--muted)}
.cs-import-mode-grid.service-default-template-state .choice{
  opacity:.42!important;
  filter:saturate(.55)!important;
}
.cs-import-mode-grid.service-default-template-state .choice.selected{
  opacity:1!important;
  filter:none!important;
  background:var(--text,#24313d)!important;
  color:#fff!important;
  border:2px solid rgba(0,0,0,.78)!important;
  outline:none!important;
  box-shadow:0 0 0 1px rgba(255,255,255,.18) inset,0 2px 8px rgba(0,0,0,.12)!important;
}
.cs-import-mode-grid.service-default-template-state .choice.selected strong,
.cs-import-mode-grid.service-default-template-state .choice.selected span{
  color:#fff!important;
}
.cs-import-mode-grid.service-default-template-state .choice:not(.selected):hover,
.cs-import-mode-grid.service-default-template-state .choice:not(.selected):focus-visible{
  opacity:.76!important;
  filter:none!important;
}

/* v1.76.77 — crisp preselected template mode, including multi-service sync */
.cs-import-mode-grid.service-default-template-state .choice{
  opacity:.48!important;
  filter:none!important;
  background:#f4f4f0!important;
  color:var(--ink)!important;
  border:1px solid var(--line)!important;
}
.cs-import-mode-grid.service-default-template-state .choice strong{
  color:var(--ink)!important;
}
.cs-import-mode-grid.service-default-template-state .choice span{
  color:var(--muted)!important;
}
.cs-import-mode-grid.service-default-template-state .choice.selected{
  opacity:1!important;
  background:#303a42!important;
  color:#fff!important;
  border:2px solid #111820!important;
  box-shadow:0 2px 9px rgba(0,0,0,.16)!important;
}
.cs-import-mode-grid.service-default-template-state .choice.selected strong{
  color:#fff!important;
}
.cs-import-mode-grid.service-default-template-state .choice.selected span{
  color:rgba(255,255,255,.86)!important;
}
.cs-import-mode-grid.service-default-template-state .choice:not(.selected):hover,
.cs-import-mode-grid.service-default-template-state .choice:not(.selected):focus-visible{
  opacity:.82!important;
  background:#f8f8f5!important;
  color:var(--ink)!important;
}
.cs-batch-template-row select{
  border:1px solid var(--line);
  background:var(--panel);
  font-weight:650;
}

/* v1.76.79 — keep the right-anchored ChurchSuite footer menu fully on-screen */
@media(max-width:700px){
  #plannerFooter #churchSuiteActionsWrap{
    position:relative!important;
  }
  #plannerFooter #churchSuiteActionsWrap .footer-menu-panel{
    left:auto!important;
    right:2px!important;
    transform:none!important;
    box-sizing:border-box!important;
    width:min(280px,calc(100vw - 28px))!important;
    min-width:0!important;
    max-width:calc(100vw - 28px)!important;
    overflow:visible!important;
  }
}

/* v1.76.81 — UI consistency and mobile containment */

/* Services: keep CS / Sync positions identical from row to row. */
.churchsuite-compact-status{
  display:grid!important;
  grid-template-columns:84px 84px!important;
  gap:12px!important;
  align-items:start!important;
  justify-content:start!important;
  min-width:180px!important;
}
.churchsuite-compact-status .cs-action-stack{
  display:grid!important;
  grid-template-rows:32px 14px!important;
  justify-items:center!important;
  align-items:center!important;
  width:84px!important;
  min-width:84px!important;
}
.churchsuite-compact-status .cs-icon-action,
.churchsuite-compact-status .cs-icon-muted{
  justify-self:center!important;
}
.churchsuite-compact-status .cs-date{
  width:84px!important;
  text-align:center!important;
  white-space:nowrap!important;
}

/* Undo/redo: calmer blue-grey that fits the planner palette. */
.footer-history-trigger{
  background:#66798d!important;
  border-color:#526476!important;
  color:#fff!important;
}
.footer-history-trigger:hover,
.footer-history-trigger[aria-expanded="true"]{
  background:#586b7f!important;
  border-color:#46596b!important;
}

/* Footer burgers: stronger icon and border; menu text easier to scan. */
#plannerFooter .footer-menu-trigger{
  border-width:2px!important;
  border-color:#aeb4b8!important;
}
#plannerFooter .burger-glyph{
  font-size:23px!important;
  line-height:.7!important;
  font-weight:900!important;
  transform:scaleX(1.12);
}
#plannerFooter .app-menu-panel{
  border-width:2px!important;
  border-color:#b8bdc0!important;
}
#plannerFooter .menu-action{
  font-size:14px!important;
  line-height:1.25!important;
  padding:11px 12px!important;
}

/* Settings tabs should look like tabs, not a floating sticky island. */
.settings-nav{
  position:static!important;
  z-index:auto!important;
  margin:0 0 18px!important;
  padding:0!important;
  gap:2px!important;
  background:transparent!important;
  backdrop-filter:none!important;
  border-bottom:1px solid var(--line)!important;
}
.settings-nav button{
  border:1px solid transparent!important;
  border-bottom:0!important;
  border-radius:9px 9px 0 0!important;
  padding:9px 12px!important;
  margin-bottom:-1px!important;
  background:transparent!important;
  color:var(--muted)!important;
}
.settings-nav button.active{
  background:var(--panel)!important;
  color:var(--ink)!important;
  border-color:var(--line)!important;
  border-bottom-color:var(--panel)!important;
}

/* Extension settings: detailed ChurchSuite type/mapping setup belongs later. */
.settings-section[data-settings-page="extensions"]{
  display:flex;
  flex-direction:column;
}
.settings-section[data-settings-page="extensions"] #churchSuiteServiceMappingSettings{order:80}
.settings-section[data-settings-page="extensions"] #churchSuiteTypesSettings{order:90}

/* Forms must never make a mobile sheet wider than its viewport. */
.field,
.field input,
.field select,
.field textarea,
.sheet input,
.sheet select,
.sheet textarea{
  box-sizing:border-box!important;
  max-width:100%!important;
  min-width:0!important;
}
.sheet textarea{
  white-space:pre-wrap!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.toggle>span,
.toggle small,
.choice span,
.menu-action,
.meta{
  min-width:0!important;
  overflow-wrap:anywhere!important;
}

/* Mobile sheet footer: buttons stay inside the sheet and wrap intentionally. */
@media(max-width:700px){
  #sheetFooter{
    box-sizing:border-box!important;
    max-width:100vw!important;
    min-width:0!important;
    gap:7px!important;
  }
  #sheetFooter>button,
  #sheetFooter>a{
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    line-height:1.15!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  #cancelLibrarySong{flex:0 0 auto!important}
  #saveLibrarySongCopy{flex:1 1 88px!important}
  #saveLibrarySong{flex:1 1 104px!important}

  .settings-nav{
    overflow-x:auto!important;
    white-space:nowrap!important;
  }
  .settings-nav button{
    flex:0 0 auto!important;
    padding:8px 10px!important;
  }

  #plannerFooter .menu-action{
    font-size:14px!important;
  }

  .churchsuite-mobile-compact{
    grid-template-columns:84px 84px!important;
    justify-content:start!important;
    gap:12px!important;
  }
  .churchsuite-mobile-compact .cs-action-stack{
    width:84px!important;
    min-width:84px!important;
    display:grid!important;
    grid-template-rows:32px 14px!important;
    justify-items:center!important;
  }
  .churchsuite-mobile-compact .cs-date{
    width:84px!important;
    text-align:center!important;
  }
}


/* v1.76.82 — header burger and fixed settings tabs */

/* Header/nav burger: border should match the dark burger strokes. */
.header-actions .menu-trigger,
.services-header-nav .menu-trigger,
#servicesHeaderNav .menu-trigger,
header .menu-trigger{
  border-width:2px!important;
  border-color:var(--ink)!important;
}

/* Settings tabs remain visible while only the settings content scrolls. */
.settings-nav{
  position:sticky!important;
  top:0!important;
  z-index:40!important;
  margin:0 0 18px!important;
  padding-top:4px!important;
  background:var(--panel)!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}


/* v1.76.83 — exact header burger border + settings tabs joined to dialog header */

/* Target the actual header burger buttons directly. */
#headerMenuBtn,
#servicesHeaderMenuBtn{
  border:2px solid var(--ink)!important;
  box-shadow:none!important;
  background:var(--panel)!important;
  color:var(--ink)!important;
}
#headerMenuBtn:hover,
#servicesHeaderMenuBtn:hover,
#headerMenuBtn[aria-expanded="true"],
#servicesHeaderMenuBtn[aria-expanded="true"]{
  border-color:var(--ink)!important;
  background:var(--soft)!important;
}

/* Settings tab strip should visually belong to the fixed header, with no seam. */
#settingsNav.settings-nav{
  position:sticky!important;
  top:-18px!important;
  z-index:35!important;
  margin:-18px -2px 18px!important;
  padding:18px 2px 0!important;
  background:var(--panel)!important;
  border-bottom:1px solid var(--line)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}

/* Remove the transparent gutter/seam between the dialog header and tabs. */
#sheetBody:has(#settingsNav){
  padding-top:0!important;
}
#sheetBody:has(#settingsNav) #settingsNav{
  margin-top:0!important;
  padding-top:0!important;
  top:0!important;
}

/* On mobile keep the same joined-header effect while still allowing horizontal tab scroll. */
@media(max-width:700px){
  #settingsNav.settings-nav{
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
    background:var(--panel)!important;
  }
}

/* v1.76.84 — ChurchSuite Express Sync */
.cs-icon-action.express-armed{
  background:#334d66!important;
  border-color:#263d52!important;
  color:#fff!important;
  box-shadow:0 0 0 2px rgba(51,77,102,.16)!important;
}
.cs-icon-action.express-armed .transient-label-text{
  font-weight:800!important;
}
.express-sync-menu-action{
  color:#304e68!important;
}
.express-sync-working{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:22px 10px;
}
.express-sync-working>div:last-child{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.express-sync-working span{
  color:var(--muted);
  font-size:12px;
}
.express-sync-spinner{
  width:25px;
  height:25px;
  border:3px solid rgba(70,90,110,.18);
  border-top-color:#536f88;
  border-radius:50%;
  animation:expressSyncSpin .75s linear infinite;
}
@keyframes expressSyncSpin{to{transform:rotate(360deg)}}

/* v1.76.86 — temporary ChurchSuite plan-item people diagnostic */
.cs-people-diagnostic-row{margin-top:8px;border-top:1px solid rgba(0,0,0,.08);padding-top:8px}
.cs-people-diagnostic-row summary{cursor:pointer;font-size:12px}
.cs-people-diagnostic-row summary span{color:var(--muted);font-weight:400}
.cs-people-diagnostic-row pre{
  box-sizing:border-box;max-width:100%;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;
  padding:9px;border-radius:9px;background:rgba(0,0,0,.04);font-size:10px;line-height:1.35
}

/* v1.76.87 — ChurchSuite assigned people import */
.cs-scan-item-main small{line-height:1.3}

/* v1.76.88 — ChurchSuite people permissions and template controls */
.template-editor-controls,.template-save-controls{display:flex;flex-direction:column;gap:6px;min-width:150px}
.template-people-toggle{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);white-space:nowrap}
.template-people-toggle input{width:15px;height:15px;margin:0}
.song-team-person{display:inline-flex;align-items:center;gap:4px;position:relative}
.song-team-more{position:relative;border:0;background:rgba(80,105,130,.10);color:#4e667d;border-radius:999px;padding:1px 5px;font:700 9px inherit;cursor:pointer}
.song-team-more .transient-label-text{left:50%;transform:translateX(-50%);bottom:calc(100% + 6px);top:auto;min-width:180px;max-width:min(320px,calc(100vw - 30px));white-space:normal;text-align:left;line-height:1.3}
@media(max-width:700px){
  .template-editor-row{grid-template-columns:auto minmax(0,1fr) auto!important}
  .template-editor-controls{grid-column:2;min-width:0;width:100%}
  .template-editor-controls select{width:100%}
  .template-people-toggle{white-space:normal}
  .template-save-controls{min-width:0;width:100%}
}

/* v1.76.90 — ChurchSuite song comparison + full team editor */
.churchsuite-song-team-full{
  display:flex;flex-direction:column;gap:3px;margin:-2px 0 12px;padding:9px 11px;
  border:1px solid var(--line);border-radius:10px;background:var(--soft)
}
.churchsuite-song-team-full strong{font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.churchsuite-song-team-full span{font-size:12px;line-height:1.35;overflow-wrap:anywhere}
.churchsuite-compare-btn{border-color:#607b94!important}
.song-compare-counts{
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;margin:8px 0 14px
}
.song-compare-counts>div{
  display:flex;flex-direction:column;gap:2px;padding:9px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel);text-align:center
}
.song-compare-counts small{color:var(--muted);font-size:9px}
.song-compare-counts strong{font-size:18px}
.song-compare-section{margin:14px 0;padding-top:10px;border-top:1px solid var(--line)}
.song-compare-section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.song-compare-section-head>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.song-compare-section-head span{font-size:10px;color:var(--muted)}
.song-compare-list{display:flex;flex-direction:column;gap:5px;max-height:220px;overflow:auto}
.song-compare-list>div{
  display:flex;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:8px;background:var(--soft)
}
.song-compare-list small{color:var(--muted);text-align:right}
@media(max-width:700px){
  .song-compare-counts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .song-compare-section-head{align-items:stretch;flex-direction:column}
  .song-compare-section-head button{width:100%}
  .song-compare-list>div{flex-direction:column;gap:2px}
  .song-compare-list small{text-align:left}
}

/* v1.76.91 — actionable ChurchSuite song reconciliation */
.song-compare-select-all{display:flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap}
.song-compare-row{display:grid!important;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px}
.song-compare-row.local-song-row{grid-template-columns:22px minmax(0,1fr) 32px!important}
.song-compare-row>input{width:16px;height:16px;margin:0}
.song-compare-row>span,.song-compare-edit-link{min-width:0;display:flex;flex-direction:column;gap:2px}
.song-compare-edit-link{border:0;background:transparent;text-align:left;padding:0;color:inherit;cursor:pointer}
.song-compare-edit-link:hover strong{text-decoration:underline}
.song-compare-delete{width:30px;height:30px}
.song-compare-actions{display:flex;justify-content:flex-end;margin-top:8px}
.conflict-row{grid-template-columns:minmax(0,1fr) auto!important}
@media(max-width:700px){
  .song-compare-row.local-song-row{grid-template-columns:20px minmax(0,1fr) 30px!important}
  .song-compare-section-head{gap:7px}
}

/* v1.76.92 — duplicate review before ChurchSuite song import */
.song-compare-top-actions{display:flex;justify-content:flex-end;margin:0 0 8px}
.song-duplicate-review{display:flex;flex-direction:column;gap:10px}
.song-duplicate-review-row{
  display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(220px,1fr);
  gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:11px;background:var(--panel)
}
.song-duplicate-source{display:flex;flex-direction:column;gap:2px;min-width:0}
.song-duplicate-source small{color:var(--muted)}
.song-duplicate-choice{display:flex;gap:8px;flex-wrap:wrap;font-size:11px}
.song-duplicate-choice label{display:flex;align-items:center;gap:4px}
.song-duplicate-candidate{margin:0!important}
.compact-card{padding:8px 10px!important;margin:0!important}
@media(max-width:800px){
  .song-duplicate-review-row{grid-template-columns:1fr}
  .song-duplicate-choice{order:2}
  .song-duplicate-candidate{order:3}
}

/* v1.76.94 — explicit reconciliation results + Recently added */
.duplicate-review-intro{margin-bottom:12px}
.song-reconcile-results,.song-compare-last-results{display:flex;flex-direction:column;gap:6px;margin:10px 0 14px}
.song-reconcile-result,.song-compare-last-result{
  display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;
  padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)
}
.song-reconcile-result>div,.song-compare-last-result>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.song-reconcile-result small,.song-compare-last-result small{color:var(--muted)}
.song-reconcile-status,.song-compare-last-result>span{font-weight:800;text-align:center}
.song-reconcile-result.added,.song-compare-last-result.added{border-left:4px solid #6f8b72}
.song-reconcile-result.merged,.song-compare-last-result.merged{border-left:4px solid #607d99}
.song-reconcile-result.skipped,.song-compare-last-result.skipped{opacity:.68}
.song-compare-last-results{padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}
.song-compare-last-results-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.library-recent-filter{min-width:130px}
@media(max-width:700px){
  .library-recent-filter{min-width:0}
}

/* v1.76.95 — complete metadata-only songs + editor delete + wider duplicate choices */
.library-lyrics-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:12px 0 7px
}
.library-lyrics-head>div{display:flex;flex-direction:column;gap:2px}
.library-lyrics-head span{font-size:10px;color:var(--muted)}
#librarySongSectionEditor:empty{
  min-height:54px;border:1px dashed var(--line);border-radius:10px;background:var(--soft)
}
.compact-section-delete{width:28px!important;height:28px!important;flex:0 0 28px!important}
.edit-section .section-line{display:flex!important;align-items:center;gap:7px}
.edit-section .section-line .secKey{min-width:0;flex:1}
.song-delete-arm{margin-left:auto}
.song-delete-arm.armed{
  background:#a83d3d!important;border-color:#872f2f!important;color:#fff!important;font-weight:800
}

/* Duplicate candidate gets the full width beneath song + action choice. */
.song-duplicate-review-row{
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
}
.song-duplicate-candidate{
  grid-column:1 / -1!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
.song-duplicate-candidate select{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}
@media(max-width:700px){
  .song-safety-row{align-items:stretch!important}
  .song-delete-arm{margin-left:0;width:100%}
  .song-duplicate-review-row{grid-template-columns:1fr!important}
  .song-duplicate-candidate{grid-column:1!important}
}

/* v1.76.96 — manual ChurchSuite song list */
.manual-song-list{display:flex;flex-direction:column;gap:6px;margin:10px 0 14px}
.manual-song-list-row{
  display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:start;
  padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)
}
.manual-song-list-row>span{font-weight:800;text-align:right}
.manual-song-list-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.manual-song-list-row small{color:var(--muted);overflow-wrap:anywhere}
.manual-song-copy-field textarea{min-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.song-compare-actions{gap:8px;flex-wrap:wrap}
@media print{
  body *{visibility:hidden!important}
  .manual-song-list-printable,.manual-song-list-printable *,
  .print-dialog,.print-dialog *{visibility:visible!important}
  .manual-song-list-printable{position:absolute;left:0;top:0;width:100%;padding:0;background:#fff;color:#000}
  .print-dialog{display:block!important;position:absolute!important;left:0;top:0;width:100%!important;height:auto!important;padding:0!important;background:#fff!important}
  .print-dialog .print-card{display:block!important;visibility:visible!important;box-shadow:none!important;margin:0!important;max-width:none!important;padding:15mm!important;border-radius:0!important}
  .manual-song-copy-field{display:none!important}
  .manual-song-list-row{break-inside:avoid;border-color:#bbb;background:#fff}
  .print-actions,.print-dialog>.close,.no-print{display:none!important}
}

/* v1.76.97 — Dashboard and revised Song Library workflows */
.library-lyrics-actions{display:flex;gap:6px;flex-wrap:wrap}
.cs-manual-add-queue{display:flex;flex-direction:column;gap:7px}
.cs-manual-add-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel)
}
.cs-manual-add-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.cs-manual-add-row small{color:var(--muted)}
.cs-manual-add-row.done{border-left:4px solid #6f8b72}

.dashboard-page{min-height:calc(100vh - 62px);padding:20px;background:var(--dashboard-bg,var(--bg))}
.dashboard-page-inner{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.dashboard-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
  padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:var(--panel)
}
.dashboard-head.churchsuite-enabled{
  border-left:5px solid #657f96;
  background:linear-gradient(90deg,rgba(101,127,150,.08),var(--panel) 32%)
}
.dashboard-kicker{
  display:block;font-size:10px;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted);margin-bottom:3px
}
.dashboard-head h1{margin:0}
.dashboard-quick-actions{display:flex;gap:8px;flex-wrap:wrap}
.dashboard-section{padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.dashboard-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:11px}
.dashboard-section-head h2{margin:0;font-size:17px}
.dashboard-section-head span{font-size:10px;color:var(--muted)}
.dashboard-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dashboard-service-card{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.dashboard-service-main{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.dashboard-service-main>div{display:flex;flex-direction:column;gap:2px}
.dashboard-service-main small{color:var(--muted)}
.dashboard-status{font-size:10px;font-weight:800;border-radius:999px;padding:4px 7px;background:#e6e8e9;white-space:nowrap}
.dashboard-status-complete,.dashboard-status-downloaded{background:#e5eee6}
.dashboard-status-incomplete,.dashboard-status-empty{background:#f3ece0}
.dashboard-status-amended{background:#f3e3df}
.dashboard-service-meta{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0;color:var(--muted);font-size:10px}
.dashboard-service-actions{display:flex;gap:6px;flex-wrap:wrap}
.dashboard-more-services{margin-top:11px}
.dashboard-more-services summary{cursor:pointer;font-weight:700;font-size:12px;margin-bottom:9px}
.dashboard-type-list{display:flex;flex-direction:column;gap:7px}
.dashboard-type-row{
  display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:10px;
  padding:9px 10px;border-radius:10px;background:var(--soft)
}
.dashboard-type-colour{width:10px;height:34px;border-radius:5px;background:var(--dashboard-type-colour)}
.dashboard-type-row>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.dashboard-type-row small{color:var(--muted);overflow-wrap:anywhere}
.dashboard-cs-settings-link{margin-top:10px}
.dashboard-empty{padding:18px;text-align:center;color:var(--muted);grid-column:1/-1}
.button-link{display:inline-flex;align-items:center;text-decoration:none}
.dashboard-with-churchsuite .topbar{box-shadow:inset 0 -2px 0 rgba(101,127,150,.30)}

@media(max-width:700px){
  .dashboard-page{padding:10px}
  .dashboard-head{align-items:stretch;flex-direction:column;padding:14px}
  .dashboard-quick-actions>*{flex:1}
  .dashboard-section{padding:12px}
  .dashboard-service-grid{grid-template-columns:1fr}
  .dashboard-type-row{grid-template-columns:10px minmax(0,1fr)}
  .dashboard-type-row>button{grid-column:2;width:100%}
  .cs-manual-add-row{grid-template-columns:1fr}
  .cs-manual-add-row button{width:100%}
  .library-lyrics-actions{width:100%}
}

/* v1.76.98 — Home screen integration and footer navigation */
.dashboard-page{
  position:fixed!important;
  top:var(--app-header-h)!important;
  bottom:0!important;
  left:0!important;
  right:0!important;
  overflow:auto!important;
  box-sizing:border-box!important;
  padding:22px var(--screen-gutter) 30px!important;
}
.dashboard-page-inner{padding-top:0!important}
.menu-action-strong{font-weight:800!important}
#dashboardFullPlannerBtn{font-weight:800!important}
.planner-footer-nav-pair{
  display:flex;
  align-items:flex-start;
  gap:7px;
  flex:0 0 auto;
  margin-top:1px;
}
.planner-footer-nav-pair[hidden]{display:none!important}
#plannerFooter .planner-footer-nav-pair .service-list-footer-btn{
  margin:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
}
.footer-nav-icon{font-size:15px;line-height:1}
body.openlp-only-view #plannerFooterNavPair{display:none!important}

@media(max-width:700px){
  .dashboard-page{
    top:var(--app-header-h)!important;
    padding:12px var(--screen-gutter) 22px!important;
  }
  #plannerFooter .planner-footer-nav-pair{
    gap:5px!important;
  }
  #plannerFooter .planner-footer-nav-pair .service-list-footer-btn{
    width:82px!important;
    min-width:82px!important;
  }
}

/* v1.76.99 — Home navigation polish */
.home-menu-item{font-weight:800!important}
#servicesFooter .services-home-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
}

/* v1.76.100 — experimental SongSelect browser bridge */
.songselect-extension-settings{margin:10px 0 18px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--soft)}
.experimental-pill{display:inline-block;margin-left:5px;padding:2px 6px;border-radius:999px;font-size:8px;letter-spacing:.04em;text-transform:uppercase;background:#ece2c9;color:#6e5a2b;vertical-align:middle}
.compact-toggle{min-width:auto!important}
.songselect-bridge-choice{border-color:#6c8297!important}
.songselect-bridge-intro,.songselect-bridge-song{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.songselect-bridge-intro p{margin:0;color:var(--muted);font-size:11px}
.songselect-bridge-steps{padding-left:22px;font-size:12px;line-height:1.5}
.songselect-bridge-song span,.songselect-bridge-song small{color:var(--muted)}
.songselect-bridge-preview{display:flex;flex-direction:column;gap:6px;margin:10px 0;max-height:330px;overflow:auto}
.songselect-bridge-preview details{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.songselect-bridge-preview summary{cursor:pointer;font-weight:700;font-size:11px}
.songselect-bridge-preview pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:11px;margin:7px 0 0}

/* v1.76.102 — SongSelect existing-song update review */
.songselect-match-summary{
  display:flex;flex-direction:column;gap:3px;padding:10px 12px;
  border:1px solid var(--line);border-radius:10px;background:var(--soft)
}
.songselect-match-summary span{font-size:11px;color:var(--muted)}
.songselect-update-changes{display:flex;flex-direction:column;gap:6px;margin:12px 0}
.songselect-update-change{
  display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1fr) 24px minmax(0,1fr);
  gap:7px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel)
}
.songselect-update-change.important{border-left:4px solid #9b7554}
.songselect-update-change .change-before{color:var(--muted)}
.songselect-update-change .change-arrow{text-align:center;font-weight:800}
.songselect-update-change .change-after{font-weight:700}
@media(max-width:700px){
  .songselect-update-change{grid-template-columns:1fr}
  .songselect-update-change .change-arrow{display:none}
  .songselect-update-change .change-before::before{content:"Current: ";font-weight:700}
  .songselect-update-change .change-after::before{content:"SongSelect: ";font-weight:700}
}

/* v1.76.103 — SongSelect guided download fallback */
.songselect-guided-choice{border-color:#58758d!important}
.songselect-guided-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 14px}
.songselect-guided-upload{padding:12px;border:1px solid var(--line);border-radius:11px;background:var(--soft)}
.songselect-guided-upload p{margin:4px 0 10px}
.settings-inline-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
#songSelectSearchUrl{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}

/* v1.76.104 — guided SongSelect existing-song comparison */
#songImportUseExisting{white-space:normal}

/* v1.76.105 — service song basic CCLI metadata */
.service-song-basic-meta{
  display:flex;gap:10px;align-items:center;margin:-4px 0 10px;
  font-size:11px;color:var(--muted)
}
.service-song-basic-meta strong{color:var(--text);font-weight:700}

/* v1.76.106 — direct CCLI SongSelect lookup */
#songSelectCcliUrl{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px}

/* v1.76.107 — robust SongSelect text-search fallback */
#songSelectGuidedOpened strong{color:var(--text);font-weight:700}

/* v1.76.108 — direct SongSelect text search restored */

/* v1.76.109 — SongSelect bridge defaults off; preserve + in text search */

/* v1.76.110 — separate normal SongSelect and experimental bridge */
.experimental-songselect-settings{margin-top:10px}

/* v1.76.111 — migrate legacy SongSelect text-search URLs */

/* v1.76.112 — fix startup crash from early SongSelect migration */

/* v1.76.113 — full side-by-side SongSelect merge */
.song-merge-grid{
  display:grid;
  grid-template-columns:120px minmax(0,1fr) minmax(0,1fr);
  gap:7px;
  margin:12px 0;
  align-items:stretch
}
.song-merge-column-head{
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
  color:var(--muted);padding:0 8px 3px
}
.song-merge-row{display:contents}
.song-merge-label{
  padding:10px 7px;font-size:11px;font-weight:800;color:var(--text);
  align-self:stretch;display:flex;align-items:flex-start
}
.song-merge-choice{
  position:relative;display:flex;flex-direction:column;gap:6px;
  padding:9px 10px;border:1px solid var(--line);border-radius:10px;
  background:var(--panel);cursor:pointer;min-width:0
}
.song-merge-choice.selected{
  border-width:2px;border-color:#607d99;background:var(--soft)
}
.song-merge-choice input{
  position:absolute;top:9px;right:9px;margin:0
}
.song-merge-source{
  padding-right:24px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)
}
.song-merge-value{font-size:11px;line-height:1.4;overflow-wrap:anywhere}
.song-merge-lyric-section{padding:7px 0;border-top:1px solid var(--line)}
.song-merge-lyric-section:first-child{border-top:0;padding-top:0}
.song-merge-lyric-section strong{display:block;margin-bottom:4px;font-size:10px}
.song-merge-lyric-section div{white-space:normal}
.song-merge-empty{color:var(--muted);font-style:italic}
.song-merge-actions{flex-wrap:wrap}
@media(max-width:760px){
  .song-merge-grid{display:flex;flex-direction:column;gap:10px}
  .song-merge-column-head{display:none}
  .song-merge-row{
    display:grid;grid-template-columns:1fr;gap:6px;
    padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--soft)
  }
  .song-merge-label{padding:0 0 2px}
  .song-merge-choice{background:var(--panel)}
  .song-merge-actions>*{flex:1 1 46%;white-space:normal}
}

/* v1.76.114 — Home is the default Planner/Admin landing screen */

/* v1.76.115 — context-aware Settings return + clearer SongSelect merge */
.song-merge-bulk-actions{
  display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:12px 0 8px
}
.song-merge-row.has-difference .song-merge-import.different{
  background:#f4eadf;
  border-color:#c7a77f
}
.song-merge-row.has-difference .song-merge-import.different.selected{
  background:#eee0d1;
  border-color:#9b7554
}
.song-merge-diff-dot{
  margin-left:6px;font-size:8px;color:#a47045;vertical-align:middle
}
@media(max-width:760px){
  .song-merge-row.has-difference{border-color:#c7a77f}
  .song-merge-bulk-actions>button{flex:1}
}

/* v1.76.116 — packaged SongSelect Edge/Chrome extension */
.songselect-extension-settings-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin:6px 0}
.songselect-extension-install{display:flex;flex-direction:column;gap:10px}
.songselect-extension-install ol{margin:0;padding-left:22px;font-size:12px;line-height:1.5}
.settings-help-details{margin-top:8px}
.settings-help-details summary{cursor:pointer;font-weight:700;font-size:11px}


/* v1.76.119 — experimental bridge Add Song launch flow */
.songselect-extension-launch-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0}

/* v1.76.123 — Home hierarchy + explicit ChurchSuite song import choices */
.dashboard-regular-services{
  margin-top:38px!important;
  padding-top:24px;
  border-top:1px solid var(--line)
}
.dashboard-regular-services .dashboard-section-head{
  opacity:.88
}
.dashboard-regular-services .dashboard-type-list{
  background:var(--soft);
  border-radius:12px;
  padding:5px 10px
}
.dashboard-regular-services .dashboard-type-row{
  min-height:44px;
  padding-top:7px;
  padding-bottom:7px
}
.dashboard-regular-services .dashboard-type-row button{
  opacity:.78
}
.song-compare-import-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap
}
.songselect-extension-reminder p{
  margin-bottom:5px
}
@media(max-width:700px){
  .dashboard-regular-services{margin-top:28px!important;padding-top:18px}
  .song-compare-import-actions>button{flex:1 1 46%;white-space:normal}
}

/* v1.76.124 — stronger Home spacing + footer-driven ChurchSuite song queue */
.dashboard-regular-services{
  margin-top:72px!important;
  padding-top:32px;
}
.song-import-method-choice{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:12px 0;
}
.song-import-method-choice .choice-line.selected{
  border-width:2px;
  border-color:#607d99;
  background:var(--soft);
}
@media(max-width:700px){
  .dashboard-regular-services{
    margin-top:50px!important;
    padding-top:26px;
  }
}

/* v1.76.125 — paced ChurchSuite song batch with reliable Back */
.cs-manual-add-row.active{
  border-color:#607d99;
  background:var(--soft)
}

/* v1.80.0 — CCLI mismatch is a critical song-import warning */
.critical-ccli-warning{
  margin:12px 0;
  padding:12px 14px;
  border:2px solid #b42318;
  border-radius:10px;
  background:#fff0ee;
  color:#7a1b13;
}
.critical-ccli-warning strong{color:#8f1d14}
.critical-ccli-warning p{margin:5px 0 0;color:#7a1b13}
.song-merge-row.critical-ccli-mismatch .song-merge-label{
  color:#9f1f16;
}
.song-merge-row.critical-ccli-mismatch .song-merge-choice{
  border-color:#d55348;
  background:#fff5f4;
}
.song-merge-row.critical-ccli-mismatch .song-merge-choice.selected{
  border:2px solid #b42318;
  background:#ffe9e6;
}
.song-merge-critical-label{
  display:block;
  margin-top:4px;
  padding:2px 5px;
  border-radius:5px;
  background:#b42318;
  color:white;
  font-size:9px;
  font-weight:800;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.03em;
}
.ccli-conflict-card{
  border:2px solid #b42318!important;
  background:#fff0ee!important;
  color:#7a1b13!important;
}
.ccli-conflict-card strong,
.ccli-conflict-card small{color:#7a1b13!important}

/* v1.80.3 — duplicate pair compare / merge */
.duplicate-merge-identities{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 14px}
.duplicate-merge-identities>div{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.duplicate-merge-identities strong,.duplicate-merge-identities span{display:block}
.duplicate-merge-identities span{margin-top:4px;font-size:11px}
.duplicate-keep-choice{display:flex;flex-direction:column;gap:7px;margin:14px 0}
.duplicate-keep-choice>.choice-line.selected{border-width:2px;border-color:#607d99;background:var(--soft)}
@media(max-width:700px){.duplicate-merge-identities{grid-template-columns:1fr}}

/* v1.80.7 — large ChurchSuite comparison lists + deep classification scan */
.song-compare-list{
  max-height:520px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:10px;
  padding:5px;
}
.song-compare-list-tools{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 7px;
}
.song-compare-list-tools input{
  flex:1;
  min-width:0;
  padding:7px 9px;
  border:1px solid var(--line);
  border-radius:8px;
  background:var(--panel);
  color:var(--text);
}
.song-compare-list-tools span{
  flex:0 0 auto;
  font-size:10px;
  color:var(--muted);
  white-space:nowrap;
}
@media(max-width:700px){
  .song-compare-list{max-height:420px}
  .song-compare-list-tools{align-items:stretch;flex-direction:column;gap:4px}
  .song-compare-list-tools span{white-space:normal}
}

/* v1.80.17 — favourite classifications and ChurchSuite read-only groups */
.song-library-favourites{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  margin:0 0 12px;padding:9px 10px;border:1px solid var(--line);
  border-radius:10px;background:var(--soft)
}
.song-library-favourites>span{font-size:10px;font-weight:700;color:var(--muted);margin-right:2px}
.classification-favourite-chip{
  border:1px solid var(--line);border-radius:999px;padding:5px 9px;
  background:var(--panel);color:var(--text);font-size:11px;cursor:pointer
}
.classification-favourite-chip.active{border-width:2px;border-color:#607d99;font-weight:700}
.classification-favourite-chip.external-managed{
  background:repeating-linear-gradient(-45deg,#eef2f4,#eef2f4 6px,#e3e9ec 6px,#e3e9ec 12px);
  border-color:#aab9c2
}
.song-classification-group.external-managed,
.classification-admin-row.external-managed,
.external-managed-note{
  background:repeating-linear-gradient(-45deg,#f2f4f5,#f2f4f5 8px,#e8edef 8px,#e8edef 16px);
  border-color:#aebbc3
}
.external-managed-pill{
  display:inline-block;margin-left:6px;padding:2px 6px;border-radius:999px;
  background:#dce4e8;color:#435863;font-size:9px;font-weight:700;vertical-align:middle
}
.classification-option.external-managed{opacity:.78}
.external-managed-note{padding:10px 12px;border:1px solid #aebbc3;border-radius:9px;margin-bottom:10px}
.external-managed-note p{margin:4px 0 0}
.classification-readonly-list{display:flex;flex-direction:column;gap:5px}
.classification-favourite-row{
  display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;
  padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel)
}
.classification-favourite-row strong{font-size:10px;color:var(--muted)}
.classification-item-favourite{display:flex;align-items:center;justify-content:center;cursor:pointer}
.classification-item-favourite input{position:absolute;opacity:0;pointer-events:none}
.classification-item-favourite span{font-size:18px;line-height:1;color:#8a969d}
.classification-item-favourite input:checked+span{color:#b78616}

/* v1.80.18 */
.dashboard-status-stack,.service-mobile-status-stack{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.cs-song-state{display:inline-block;font-size:10px;line-height:1.2;padding:3px 6px;border-radius:999px;background:var(--soft);color:var(--muted);white-space:nowrap}
.cs-song-state-all-selected{background:#edf7ef;color:#245b2c}
.cs-song-state-partial{background:#fff7df;color:#715313}
.cs-song-state-none-selected{background:#fff0ee;color:#7a1b13}
.cs-song-state-none-required{background:#eef2f4;color:#586a74}
.service-progress-cell .cs-song-state{margin-top:5px}
.planner-output-pair{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}
.planner-output-pair>.planner-export-ready{width:100%;min-width:0}
.planner-run-sheet-footer{background:var(--panel);color:var(--text);border:1px solid var(--line)}
@media(max-width:700px){.planner-output-pair{gap:5px}.planner-output-pair>.planner-export-ready{font-size:11px;padding-left:6px;padding-right:6px}}


/* v1.80.22 — actual Undo/Redo history control placement */
#plannerFooter #footerHistoryWrap:not([hidden]){
  display:block;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
}
@media(max-width:700px){
  #plannerFooter #footerHistoryWrap:not([hidden]){
    display:block;
    left:auto !important;
    right:8px !important;
    transform:none !important;
    top:auto !important;
    bottom:9px !important;
  }
  #plannerFooter #footerHistoryMenu{
    left:auto !important;
    right:0 !important;
    transform:none !important;
  }
}

/* v1.80.24 — Services history switch */
.services-history-toggle{
  display:inline-flex;
  align-self:flex-start;
  gap:2px;
  padding:3px;
  margin:0 0 10px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--soft);
}
.services-history-toggle button{
  border:0;
  background:transparent;
  color:var(--muted);
  border-radius:7px;
  padding:6px 10px;
  font:inherit;
  font-size:11px;
  font-weight:650;
  cursor:pointer;
}
.services-history-toggle button.active{
  background:var(--panel);
  color:var(--ink);
  box-shadow:0 1px 2px rgba(0,0,0,.06);
}
.services-empty-state{
  padding:24px 12px;
  text-align:center;
  color:var(--muted);
  font-size:12px;
}
#brandHomeLink{cursor:pointer}
#brandHomeLink:hover{opacity:.84}
@media(max-width:700px){
  .services-history-toggle{margin-bottom:8px}
  .services-history-toggle button{padding:6px 9px;font-size:10px}
}

/* v1.80.26 — OpenLP desktop plugin settings */
.openlp-device-key-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto;gap:7px;align-items:center}
.openlp-device-key-row input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
@media(max-width:700px){
  .openlp-device-key-row{grid-template-columns:1fr 1fr}
  .openlp-device-key-row input{grid-column:1/-1}
}

/* v1.80.28 — named OpenLP devices */
.openlp-device-key-result{margin-top:8px}
.openlp-device-key-result input{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.openlp-device-list{display:flex;flex-direction:column;gap:6px}
.openlp-device-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.openlp-device-list-row span{display:flex;flex-direction:column;gap:2px}
.openlp-device-list-row small{font-size:10px;color:var(--muted)}

/* v1.80.40 service-item attachment actions */
.media-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:3px;flex-wrap:wrap}
.media-row-actions .media-mini-action:disabled{cursor:default;text-decoration:none;opacity:.65}
@media(max-width:720px){.image-media-row{grid-template-columns:34px 54px minmax(0,1fr)}.media-row-actions{grid-column:2 / -1;justify-content:flex-start}}

/* v1.80.60 — planner appearance and Song Library help */
.branding-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.branding-logo-field{grid-column:1/-1}
.song-library-help{margin:0 0 14px;padding:13px 15px;border:1px solid var(--line);background:var(--soft);border-radius:10px}
.song-library-help-title{font-weight:700;margin-bottom:7px;color:var(--accent)}
.song-library-help-body{font-size:13px;line-height:1.5}
.song-library-help-body p:first-child{margin-top:0}.song-library-help-body p:last-child{margin-bottom:0}
.song-library-help-body ul,.song-library-help-body ol{margin:7px 0 7px 20px;padding:0}
@media(max-width:600px){.branding-settings-grid{grid-template-columns:1fr}.branding-logo-field{grid-column:auto}}

/* v1.80.62 — compact administrator branding controls */
.branding-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.branding-logo-field{grid-column:1/-1}
.branding-colour-row{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;align-items:center}
.branding-colour-row input[type=color]{width:46px!important;height:42px!important;min-height:42px!important;padding:3px!important;border:1px solid var(--line)!important;border-radius:10px!important;background:var(--panel)!important;box-sizing:border-box}
.branding-colour-row .branding-hex{width:100%!important;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;letter-spacing:.01em}
.settings-version{margin-top:4px}
@media(max-width:600px){.branding-settings-grid{grid-template-columns:1fr}.branding-logo-field{grid-column:auto}}

/* v1.80.63 — Page background controls the dashboard without recolouring the header */
:root{--header-bg:#f7f7f4;--dashboard-bg:#f7f7f4}
.topbar{background:color-mix(in srgb,var(--header-bg) 88%,transparent)}
.openlp-import-section{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.openlp-import-row{border:1px solid var(--line);border-radius:14px;padding:13px;margin:9px 0;background:var(--panel)}.openlp-import-main{display:grid;gap:4px}.openlp-import-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.openlp-song-action{min-width:190px}.openlp-verse-choice{display:flex;align-items:center;gap:6px;margin:0}.openlp-verse-choice select{border:1px solid var(--line);background:#fafaf7;border-radius:9px;padding:7px}.openlp-import-media{display:flex;align-items:center;gap:8px;padding:9px 0}.openlp-import-media input{width:18px;height:18px}.openlp-unsupported{padding:8px 0;border-bottom:1px solid var(--line)}.openlp-unsupported:last-child{border-bottom:0}.openlp-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.song-compare-section{border:1px solid var(--line);border-radius:10px;padding:9px;margin:7px 0}.song-compare-section pre{white-space:pre-wrap;font:inherit;margin:7px 0 0;color:var(--ink)}.status-pill{display:inline-block;width:max-content;border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:650}.status-pill.success{background:#e9f3ec}.status-pill.warning{background:#fff4dd}.import-progress{padding:18px 0;color:var(--muted)}
@media(max-width:700px){.openlp-compare-grid{grid-template-columns:1fr}.openlp-song-action{min-width:0;width:100%}.openlp-verse-choice{width:100%;justify-content:space-between}.openlp-import-controls{display:grid;grid-template-columns:1fr}.openlp-import-controls .secondary{width:100%}}

/* Recently Deleted bulk selection */
.media-trash-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin:0 0 12px;
}
.media-trash-select{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  cursor:pointer;
}
.media-trash-row{
  grid-template-columns:36px minmax(0,1fr) auto!important;
}
@media(max-width:700px){
  .media-trash-row{grid-template-columns:34px minmax(0,1fr) auto!important}
  .media-trash-actions button{flex:1 1 auto}
}
