:root {
  --alliance-orange: #b16729;
  --alliance-green: #71914d;
  --alliance-yellow: #e7bb20;
  --alliance-blue: #6b91a1;
  --alliance-red: #801214;
  --alliance-gray: #939598;
  --ink: #292c2e;
  --muted: #717579;
  --line: #e3e5e4;
  --paper: #ffffff;
  --canvas: #f2f4f3;
  --blue-deep: #466f80;
  --blue-soft: #eaf1f4;
  --green-soft: #edf2e8;
  --yellow-soft: #fff8dc;
  --danger: #9a5b27;
  --shadow: 0 18px 50px rgba(43, 52, 53, .08), 0 2px 8px rgba(43, 52, 53, .04);
  --shadow-float: 0 24px 70px rgba(28, 37, 40, .2);
}

* { scrollbar-width: thin; scrollbar-color: #c8cdca transparent; }
*::-webkit-scrollbar { width: 6px; height: 6px; }
*::-webkit-scrollbar-thumb { background: #c8cdca; border-radius: 999px; }
html, body { width: 100%; height: 100%; overflow: hidden; background: var(--canvas); }
body {
  color: var(--ink);
  font-family: "Avenir Next", Avenir, Helvetica, Arial, sans-serif;
  background: radial-gradient(circle at 0 0, rgba(107,145,161,.10), transparent 24rem), linear-gradient(180deg, #f8f9f8 0, #f1f3f2 100%);
}
body::before {
  content: ""; position: fixed; z-index: 100; inset: 0 0 auto; height: 4px;
  background: linear-gradient(90deg, var(--alliance-orange) 0 25%, var(--alliance-green) 25% 50%, var(--alliance-yellow) 50% 75%, var(--alliance-blue) 75%);
}
button, input, textarea, select { font-family: inherit; }
button { -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(107,145,161,.24); outline-offset: 2px; }

.topbar {
  height: 82px; padding: 4px 28px 0; gap: 42px; border: 0; background: rgba(255,255,255,.92);
  box-shadow: 0 1px 0 rgba(41,44,46,.08); backdrop-filter: blur(18px); position: sticky; top: 0; z-index: 40;
}
.brand { gap: 12px; min-width: 188px; font-family: inherit; }
.brand-logo { width: 48px; height: 48px; object-fit: contain; flex: 0 0 auto; }
.brand-mark { display: none; }
.brand-copy { display: grid; line-height: 1; letter-spacing: .08em; }
.brand-copy strong { font-size: 17px; color: #737577; font-weight: 400; }
.brand-copy small { margin-top: 5px; color: var(--ink); font-size: 9px; font-weight: 700; letter-spacing: .28em; }
.topbar nav { gap: 4px; }
.topbar nav button { height: 42px; border-radius: 12px; padding: 0 16px; font-size: 13px; font-weight: 600; color: var(--muted); position: relative; }
.topbar nav button:hover { color: var(--ink); background: #f3f5f4; }
.topbar nav .nav-active { background: var(--blue-soft); color: var(--blue-deep); }
.topbar nav .nav-active::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: -16px; height: 3px; border-radius: 3px 3px 0 0; background: var(--alliance-blue); }
.church { gap: 12px; color: var(--muted); font-size: 12px; }
.live-status { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 999px; background: var(--green-soft); color: #56743b; font-weight: 700; }
.live-status i { width: 7px; height: 7px; background: var(--alliance-green); border-radius: 50%; box-shadow: 0 0 0 4px rgba(113,145,77,.13); }
.avatar { width: 38px; height: 38px; background: var(--ink); color: #fff; font-size: 11px; letter-spacing: .06em; box-shadow: 0 4px 12px rgba(41,44,46,.16); }

.workspace { grid-template-columns: minmax(290px,.8fr) minmax(420px,1.12fr) minmax(330px,.88fr); gap: 16px; padding: 18px; width: 100%; height: calc(100vh - 82px); min-height: 0; overflow: hidden; }
.panel { height: 100%; min-height: 0; border: 1px solid rgba(41,44,46,.07); border-radius: 22px; background: rgba(255,255,255,.94); box-shadow: var(--shadow); overflow: hidden; }
.library, .queue, .preview { padding: 22px; }
.library { padding: 17px; }
.preview { padding: 17px; height: 100%; max-height: none; min-height: 0; align-self: stretch; overflow: hidden; }
.preview .block-list { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; padding-right: 5px; overscroll-behavior: contain; }
.queue .queue-list { flex: 1; min-height: 0; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; }
.library .library-accordions { flex: 1; min-height: 0; }
.library > .section-head h1 { font-size: 24px; }
.preview > .section-head h2 { font-size: 21px; line-height: 1.05; }
.section-head { align-items: center; }
.section-head h1, .section-head h2, .modal-head h2 { font-family: "Avenir Next", Avenir, Helvetica, Arial, sans-serif; font-weight: 700; letter-spacing: -.035em; color: var(--ink); }
.section-head h1 { font-size: 27px; }
.section-head h2 { font-size: 23px; }
.eyebrow { color: var(--alliance-gray); font-size: 9px; letter-spacing: .18em; margin-bottom: 5px; }
.eyebrow::before { content: ""; display: inline-block; width: 22px; height: 3px; margin-right: 8px; vertical-align: 2px; border-radius: 5px; background: var(--alliance-yellow); }

.primary, .secondary, .present-button { min-height: 39px; border-radius: 11px; border: 1px solid transparent; padding: 9px 14px; font-size: 12px; font-weight: 700; transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease; }
.primary { background: var(--blue-deep); color: #fff; box-shadow: 0 7px 18px rgba(70,111,128,.2); }
.primary:hover, .present-button:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(70,111,128,.27); }
.secondary { background: #fff; color: var(--blue-deep); border-color: #d8e1e4; }
.secondary:hover { background: var(--blue-soft); border-color: #b7cbd3; }
.compact { min-height: 34px; padding: 7px 11px; }
.present-button { background: var(--blue-deep); color: #fff; padding-inline: 18px; }
.danger { color: var(--danger) !important; }
.ghost:hover { background: #f9ecec; }

.library-accordions { margin-top: 14px; gap: 7px; }
.library-accordion { border: 1px solid var(--line); border-radius: 15px; overflow: hidden; background: #fbfcfb; }
.library-accordion.open { border-color: #cfdadd; box-shadow: 0 8px 22px rgba(50,62,64,.06); background: #fff; }
.library-accordion-head { padding: 10px 11px; color: var(--ink); }
.library-accordion-head:hover { background: #f6f8f7; }
.library-accordion-head span { gap: 10px; }
.library-accordion-head span b { width: 27px; height: 27px; border-radius: 8px; background: var(--blue-soft); color: var(--blue-deep); display: grid; place-items: center; }
.library-accordion[data-library-section="slides"] .library-accordion-head span b { background: var(--yellow-soft); color: #987718; }
.library-accordion-head i { background: #eef0ef; color: var(--muted); min-width: 28px; height: 25px; display: grid; place-items: center; border-radius: 999px; }
.library-accordion-body { padding: 0 9px 9px; }
.library-create-row { padding: 7px 1px 8px; color: var(--muted); font-size: 11px; }
.song-create-row { justify-content: flex-end; gap: 8px; }
.compact-docx { flex: 1; min-width: 0; min-height: 34px; padding: 4px 8px; gap: 7px; text-align: left; }
.compact-docx > b { width: 34px; height: 25px; font-size: 8px; flex: 0 0 auto; }
.compact-docx span { min-width: 0; }
.compact-docx strong, .compact-docx small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.compact-docx strong { font-size: 10px; }
.compact-docx small { margin-top: 1px; font-size: 8px; color: var(--muted); }
.search { border: 1px solid #dde2e0; border-radius: 10px; background: #f7f8f7; padding: 7px 10px; margin: 3px 0 7px; flex-direction: row; align-items: center; }
.search input { padding: 0; border: 0; background: transparent; box-shadow: none; }
.search input:focus { border: 0; background: transparent; box-shadow: none; }
.search:focus-within { border-color: var(--alliance-blue); background: #fff; box-shadow: 0 0 0 3px rgba(107,145,161,.1); }
.search span { color: var(--alliance-blue); font-size: 18px; }
.filter-row { gap: 5px; margin-bottom: 8px; }
.chip { border: 0; background: #f0f2f1; color: var(--muted); padding: 5px 9px; font-weight: 600; }
.chip:hover { background: var(--blue-soft); color: var(--blue-deep); }
.chip.active { background: var(--ink); color: #fff; }
.song-docx-dropzone { border: 1px dashed #b8c9cf; background: linear-gradient(135deg, #f8fbfc, #eef4f5); border-radius: 13px; }
.song-docx-dropzone:hover, .song-docx-dropzone.dragging { border-color: var(--alliance-blue); background: var(--blue-soft); transform: none; }
.song-docx-dropzone > b { background: var(--alliance-blue); color: #fff; border-radius: 7px; }
.url-import-button { white-space: nowrap; padding-inline: 10px; }
.song-url-dialog { width: min(650px, calc(100vw - 30px)); }
.url-dialog-subtitle { margin: 5px 0 0; color: var(--muted); font-size: 11px; font-weight: 400; }

.header-settings-button { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--muted); font-size:17px; }
.header-settings-button:hover { border-color:var(--green); background:var(--green-soft); color:var(--green); }
.ai-settings-status { display:flex; align-items:center; gap:12px; margin-bottom:20px; padding:13px 14px; border:1px solid var(--line); border-radius:10px; background:#f8f9f6; }
.ai-settings-status > span { width:10px; height:10px; flex:0 0 auto; border-radius:50%; background:#939598; box-shadow:0 0 0 4px rgba(147,149,152,.14); }
.ai-settings-status.configured > span { background:#71914d; box-shadow:0 0 0 4px rgba(113,145,77,.14); }
.ai-settings-status.missing > span { background:#b16729; box-shadow:0 0 0 4px rgba(177,103,41,.14); }
.ai-settings-status strong,.ai-settings-status small { display:block; }
.ai-settings-status strong { font-size:13px; }
.ai-settings-status small { margin-top:3px; color:var(--muted); font-size:11px; }
.secret-input { display:grid; grid-template-columns:1fr 42px; gap:0; }
.secret-input input { min-width:0; border-radius:9px 0 0 9px; }
.secret-input button { border:1px solid var(--line); border-left:0; border-radius:0 9px 9px 0; background:white; color:var(--muted); font-size:17px; }
.secret-input button:hover { color:var(--green); }
.ai-settings-dialog code { font-size:10px; }
.song-url-dialog label > small { color: var(--muted); font-weight: 500; }
.authorization-check { flex-direction: row; align-items: flex-start; gap: 10px; margin: 4px 0 15px; padding: 12px; border: 1px solid #d8e1e4; border-radius: 12px; background: var(--blue-soft); }
.authorization-check input { width: 17px; height: 17px; margin: 2px 0 0; padding: 0; flex: 0 0 auto; accent-color: var(--blue-deep); }
.authorization-check span { display: grid; gap: 3px; }
.authorization-check small { color: var(--muted); font-weight: 400; line-height: 1.4; }
.form-error { margin: 0 0 13px; padding: 10px 12px; border-left: 3px solid var(--alliance-red); border-radius: 0 9px 9px 0; background: #fbeded; color: var(--alliance-red); font-size: 11px; }
.url-extraction-preview { margin-top: 4px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: #f7f8f7; }
.url-extraction-preview > div { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.url-extraction-preview small { color: var(--muted); font-size: 9px; }
.url-extraction-preview textarea { width: 100%; min-height: 150px; max-height: 230px; resize: vertical; font: 10px/1.45 ui-monospace, SFMono-Regular, Menlo, monospace; color: #555; }
.ai-review-dialog { width: min(720px, calc(100vw - 30px)); }
.ai-review-dialog textarea { width: 100%; min-height: 210px; resize: vertical; font-size: 12px; line-height: 1.55; }
.prompt-help { display: flex; align-items: flex-start; gap: 10px; margin-top: -3px; padding: 11px 12px; border-radius: 12px; background: var(--yellow-soft); color: #705c1f; }
.prompt-help > span { font-size: 17px; color: #9a7a16; }
.prompt-help p { display: grid; gap: 3px; margin: 0; font-size: 10px; }
.prompt-help small { color: #827344; font-weight: 400; line-height: 1.4; }
.announcements-dialog { width: min(780px, calc(100vw - 30px)); }
.announcements-sheet { padding: 28px; max-height: 90vh; overflow: auto; }
.rich-text-toolbar { display: flex; gap: 5px; padding: 7px; border: 1px solid var(--line); border-bottom: 0; border-radius: 11px 11px 0 0; background: #f3f5f4; }
.rich-text-toolbar button { min-width: 34px; height: 31px; padding: 4px 9px; border: 1px solid #d9dedd; border-radius: 7px; background: #fff; color: var(--ink); }
.rich-text-toolbar button:hover { border-color: var(--alliance-blue); background: var(--blue-soft); }
.rich-text-editor { min-height: 170px; max-height: 300px; overflow: auto; padding: 13px; border: 1px solid #d9dedd; border-radius: 0 0 11px 11px; background: #fff; font-size: 13px; line-height: 1.5; outline: 0; }
.rich-text-editor:focus { border-color: var(--alliance-blue); box-shadow: 0 0 0 3px rgba(107,145,161,.11); }
.rich-text-editor:empty::before { content: attr(data-placeholder); color: #a0a4a5; }
.announcements-history-head { display: flex; justify-content: space-between; margin: 22px 0 8px; color: var(--ink); }
.announcements-history-head small { color: var(--muted); }
.announcements-list { display: grid; gap: 7px; }
.announcement-card { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfb; }
.announcement-card { cursor: pointer; }
.announcement-card:hover { border-color: #b9cbd2; background: #fff; }
.announcement-card.latest { border-left: 4px solid var(--alliance-green); background: var(--green-soft); }
.announcement-card.editing { border-color: var(--alliance-blue); box-shadow: 0 0 0 3px rgba(107,145,161,.13); }
.announcement-card span { display: block; margin-bottom: 3px; color: var(--blue-deep); font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.announcement-card strong { font-size: 12px; }
.announcement-card button { width: 28px; height: 28px; border: 0; border-radius: 8px; background: transparent; color: var(--danger); }
.announcement-rich-preview { max-height: 74px; margin-top: 5px; overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.35; }
.announcement-rich-preview p, .rich-announcement-box p { margin: 0 0 .45em; }
.announcement-rich-preview ul, .announcement-rich-preview ol, .rich-announcement-box ul, .rich-announcement-box ol { margin: .25em 0; padding-left: 1.35em; }
.rich-text-editor ul, .announcement-rich-preview ul, .rich-announcement-box ul { list-style: disc inside !important; }
.rich-text-editor ol, .announcement-rich-preview ol, .rich-announcement-box ol { list-style: decimal inside !important; }
.rich-text-editor li, .announcement-rich-preview li, .rich-announcement-box li { display: list-item !important; margin: .12em 0; }
.rich-text-editor strong, .announcement-rich-preview strong, .rich-announcement-box strong { font-weight: 700 !important; }
.rich-text-editor em, .announcement-rich-preview em, .rich-announcement-box em { font-style: italic !important; }
.rich-text-editor u, .announcement-rich-preview u, .rich-announcement-box u { text-decoration: underline !important; }
.rich-text-editor ul, .rich-text-editor ol { margin: .35em 0; padding-left: 1.6em; }
.rich-announcement-box { white-space: normal !important; line-height: 1.25; }
.rich-announcement-box .preaching-theme { margin:0 0 .25em; font-size:1.32em; line-height:1.15; }
.rich-announcement-box .preaching-passage { margin:0 0 .75em; padding-left:1.25em; font-size:.88em; opacity:.88; }
.rich-announcement-box .preaching-person { margin:0 0 .2em; padding-left:1.25em; font-size:.78em; }
.rich-announcement-box .preaching-person span { font-weight:700; }

.song-list { margin: 0 -3px; padding: 0 3px; }
.song-card { gap: 8px; min-height: 51px; margin-bottom: 3px; padding: 6px 7px; border: 1px solid transparent; border-radius: 11px; background: #fff; transition: background .15s ease, border-color .15s ease, box-shadow .15s ease; }
.song-card:hover { background: #f8faf9; border-color: var(--line); box-shadow: 0 5px 15px rgba(42,50,47,.05); }
.song-card.selected { background: var(--blue-soft); border-color: #c6d8df; }
.song-glyph, .slide-thumb { width: 36px; height: 36px; border-radius: 9px; background-color: var(--blue-soft); color: var(--blue-deep); }
.slide-thumb { background-color: var(--yellow-soft); color: #997817; }
.default-slide-button { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid #e4e6e4; border-radius: 8px; background: #fff; color: var(--alliance-gray); font-size: 16px; line-height: 1; }
.slide-library-rename, .slide-library-edit { width: 28px; height: 28px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid transparent; border-radius: 8px; background: transparent; color: var(--alliance-gray); }
.slide-library-rename:hover, .slide-library-edit:hover { border-color: #c9d9df; background: var(--blue-soft); color: var(--blue-deep); }
.slide-library-edit { font-size: 9px; font-weight: 800; }
.slide-library-card .song-info { position: relative; }
.slide-library-title-input { position: absolute; z-index: 4; inset: -6px -5px auto -5px; width: calc(100% + 10px); height: 31px; padding: 5px 8px; border: 1px solid var(--alliance-blue); border-radius: 8px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; box-shadow: 0 8px 20px rgba(40,57,63,.18), 0 0 0 3px rgba(107,145,161,.12); }
.slide-library-card.renaming { overflow: visible; border-color: var(--alliance-blue); cursor: default; }
.default-slide-button:hover { border-color: var(--alliance-yellow); background: var(--yellow-soft); color: #8d7015; }
.default-slide-button.active { border-color: #e4c54d; background: var(--yellow-soft); color: #987718; box-shadow: 0 4px 12px rgba(231,187,32,.16); }
.default-slide-card { border-color: var(--line); background:#fff; cursor: grab; }
.default-slide-card:active { cursor: grabbing; }
.default-slide-card.dragging { opacity: .48; border-color: var(--alliance-yellow); box-shadow: 0 10px 24px rgba(67,57,24,.14); }
.slide-library-card { transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease,opacity .15s ease; }
.slide-library-card.dragging { opacity:.28; border:1px dashed var(--alliance-blue); background:var(--blue-soft); box-shadow:none; }
.slide-drag-handle { display:grid; place-items:center; flex:0 0 20px; color:var(--muted); cursor:grab; }
.default-slide-card:active .slide-drag-handle { cursor:grabbing; }
.slide-favorite-button { color:#9a9f9b; }
.slide-favorite-button:hover { color:#b78f00; background:transparent; }
.slide-favorite-button.active { color:var(--alliance-yellow) !important; background:transparent; }
.favorite-star-symbol { display:grid; place-items:center; width:18px; height:18px; font-size:20px; line-height:1; color:inherit; }
.song-info strong { font-size: 13px; color: var(--ink); }
.song-info span { font-size: 10px; line-height: 1.4; }
.add-queue { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: var(--blue-soft); color: var(--blue-deep); font-size: 17px; }
.add-queue:hover { background: var(--blue-deep); color: #fff; transform: scale(1.04); }
.song-background-button, .song-delete-button { width: 28px; height: 28px; border-radius: 8px; }

.queue-head-actions { flex-wrap: wrap; justify-content: flex-end; }
.queue-head-actions #newLiturgy { white-space: nowrap; }
.count { border: 0; background: #eef0ef; color: var(--muted); font-weight: 700; padding: 7px 10px; }
.queue-guide { margin: 22px 3px 11px; color: var(--alliance-gray); }
.queue-guide span:first-child { color: var(--blue-deep); font-weight: 700; }
.queue-list { gap: 8px; padding: 2px; }
.queue-frame { display:flex; flex-direction:column; gap:7px; padding:8px; border:1px solid #cbd8dd; border-left:4px solid var(--alliance-blue); border-radius:5px; background:linear-gradient(180deg,var(--blue-soft),#f8fafb); cursor:grab; }
.queue-frame.dragging { opacity:.55; border-color:var(--alliance-yellow); }
.frame-header { display:grid; grid-template-columns:22px minmax(0,1fr) auto 30px; align-items:center; gap:8px; min-height:42px; }
.frame-handle { color:var(--alliance-blue); font-size:18px; }
.frame-header .queue-item-copy small { margin:0 0 2px; color:var(--blue-deep); font-size:8px; font-weight:800; letter-spacing:.12em; }
.frame-header .queue-item-copy strong { font-size:13px; }
.frame-header>button { width:28px; height:28px; display:grid; place-items:center; border:0; border-radius:4px; background:transparent; color:var(--muted); }
.frame-header>button:hover { background:#fff; color:var(--blue-deep); }
.frame-count { padding:5px 7px; border-radius:4px; background:#fff; color:var(--muted); font-size:9px; font-weight:700; white-space:nowrap; }
.frame-items { display:flex; flex-direction:column; gap:6px; min-height:38px; padding:5px; border:1px dashed #bfd0d6; border-radius:4px; background:rgba(255,255,255,.58); }
.frame-items .queue-card { margin:0; background:#fff; }
.frame-empty { display:grid; place-items:center; min-height:36px; color:#7f9198; font-size:9px; pointer-events:none; }
.queue-outside-drop { display:none; min-height:38px; place-items:center; border:1px dashed var(--alliance-orange); border-radius:4px; background:#fff8f0; color:var(--alliance-orange); font-size:9px; font-weight:800; }
.queue-dragging .queue-outside-drop { display:grid; }
.queue-card { grid-template-columns: 35px 1fr auto; min-height: 70px; border: 1px solid var(--line); border-left: 4px solid var(--alliance-blue); border-radius: 14px; padding: 11px 12px 11px 9px; background: #fff; transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease, background .15s ease; }
.queue-card:hover { border-color: #cbd5d7; box-shadow: 0 8px 20px rgba(47,56,58,.07); transform: translateY(-1px); }
.queue-card.selected { border-color: #bfcdb2; border-left-color: var(--alliance-green); background: linear-gradient(90deg, var(--green-soft), #fff 38%); box-shadow: 0 8px 22px rgba(113,145,77,.10); }
.queue-card[draggable="true"] { cursor: grab; }
.queue-card.dragging { opacity: .55; transform: scale(.985); border-color: var(--alliance-yellow); }
.queue-index { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: var(--blue-soft); color: var(--blue-deep); font: 700 11px "Avenir Next", Avenir, Helvetica, Arial, sans-serif; }
.queue-card.selected .queue-index { background: var(--alliance-green); color: #fff; }
.queue-item-copy strong { font-size: 13px; }
.queue-item-copy small { font-size: 10px; line-height: 1.35; }
.queue-actions { gap: 3px; opacity: .58; transition: opacity .15s; }
.queue-card:hover .queue-actions, .queue-card.selected .queue-actions { opacity: 1; }
.queue-actions button, .icon-button { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; }
.queue-actions button:hover, .icon-button:hover { background: var(--blue-soft); color: var(--blue-deep); }
.queue-footer { border-color: var(--line); padding-top: 15px; }
.queue-footer small { letter-spacing: .08em; text-transform: uppercase; }
.queue-footer strong { margin-top: 3px; font-size: 15px; }
.queue-presentation-actions { flex-wrap: wrap; justify-content: flex-end; }

.preview { background: linear-gradient(180deg, #fff, #fbfcfb); }
.preview-actions { flex-wrap: wrap; justify-content: flex-end; gap: 3px; }
.preview-actions .icon-button { width: 27px; height: 27px; font-size: 15px; }
.preview-edit-button { min-height: 30px; padding: 5px 8px; border-radius: 8px; font-size: 9px; }
.artist { margin: 6px 0 11px; padding-bottom: 9px; border-bottom: 1px solid var(--line); font-size: 10px; }
.preview-hint { background: var(--blue-soft); color: var(--blue-deep); border-left: 3px solid var(--alliance-blue); padding: 7px 9px; margin-bottom: 6px; border-radius: 0 8px 8px 0; font-size: 9px; }
.preview-block { border: 1px solid transparent; border-bottom-color: var(--line); border-radius: 10px; margin-bottom: 3px; padding: 9px 8px; transition: background .12s ease, border-color .12s ease, box-shadow .12s ease; }
.preview-block:hover { background-color: #f7f9f8; border-color: var(--line); }
.preview-block.on-air { background-color: var(--green-soft); border-color: #cad7bf; box-shadow: inset 4px 0 var(--alliance-green); }
.preview-block.on-air::after { background: var(--alliance-green); color: #fff; padding: 4px 6px; border-radius: 5px; margin-top: -25px; }
.block-tag { color: var(--blue-deep); background: var(--blue-soft); border-radius: 5px; padding: 4px 6px; margin-bottom: 5px; font-size: 8px; }
.preview-block p { line-height: 1.45; color: #424749; font-size: 12px; }
.inline-editing .preview-block { background-color: #fff; border: 1px dashed #b9c7cc; padding-bottom: 12px; }
.inline-editing .preview-block:hover { border-color: var(--alliance-blue); }
.inline-block-actions { border-top: 1px solid var(--line); padding-top: 9px; }
.preview .design-preview, .preview .blank-preview, .preview .music-background-preview { width: 100%; aspect-ratio: 16 / 9; min-height: 0; padding: 0; background-color: #101512; background-size: contain; background-repeat: no-repeat; background-position: center; container-type: inline-size; }
.preview .design-preview:hover, .preview .design-preview.on-air, .preview .blank-preview:hover, .preview .blank-preview.on-air, .preview .music-background-preview:hover, .preview .music-background-preview.on-air { background-size: contain; background-repeat: no-repeat; background-position: center; }
.preview .design-preview::after, .preview .blank-preview::after, .preview .music-background-preview::after { position: absolute; top: 10px; right: 10px; float: none; margin: 0; z-index: 5; }
.preview .music-background-preview { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 18px; text-align: center; }

.empty-state { border: 1px dashed #d7dcda; border-radius: 16px; margin: auto 0; background: #fafbfa; }
.empty-icon { width: 48px; height: 48px; margin: 0 auto 14px; display: grid; place-items: center; border-radius: 14px; background: var(--blue-soft); color: var(--blue-deep); }

dialog { border-radius: 22px; box-shadow: var(--shadow-float); background: #fff; }
dialog::backdrop { background: rgba(29,34,35,.58); backdrop-filter: blur(7px); }
#songForm, .visual-editor-dialog form, .small-dialog form, .liturgies-sheet, .insert-slide-sheet { padding: 28px; }
.modal-head { padding-bottom: 16px; margin-bottom: 20px; border-bottom: 1px solid var(--line); }
.close { width: 38px; height: 38px; border-radius: 11px; display: grid; place-items: center; font-size: 22px; }
.close:hover { background: #f0f2f1; color: var(--ink); }
label { color: #555b5e; letter-spacing: .01em; }
input, textarea, select { border: 1px solid #d9dedd; border-radius: 11px; background: #fbfcfb; transition: border .15s, box-shadow .15s, background .15s; }
input:focus, textarea:focus, select:focus { border-color: var(--alliance-blue); background: #fff; box-shadow: 0 0 0 3px rgba(107,145,161,.11); }
.blocks-head { padding-top: 5px; }
.editor-block { border: 1px solid var(--line); border-left: 4px solid var(--alliance-blue); border-radius: 14px; background: #fafbfa; padding: 14px; }
.editor-block:hover { background: #fff; border-color: #cad3d5; }
.editor-block.dragging { border-color: var(--alliance-yellow); box-shadow: 0 12px 26px rgba(37,46,47,.12); }
.block-drag-handle { width: 24px; color: var(--alliance-gray); }
.duplicate-block, .remove-block { width: 34px; height: 34px; border-radius: 9px; }
.duplicate-block:hover { background: var(--blue-soft); }
.remove-block:hover { background: #f9ecec; }
.visual-toolbar { display:grid; border-radius:10px; background:#f5f7f6; padding:6px; gap:5px; }
.visual-toolbar-group { display:flex; align-items:center; flex-wrap:wrap; gap:5px; min-width:0; }
.visual-toolbar-media { padding-bottom:5px; border-bottom:1px solid #dde2e0; }
.visual-toolbar button, .visual-toolbar select, .visual-toolbar input { flex:0 0 auto; height:30px; padding:3px 8px; border-radius:6px; white-space:nowrap; font-size:12px; }
.visual-toolbar .button-with-icon { gap:5px; }
.visual-toolbar .ui-icon { font-size:15px; }
.box-color-picker { position:relative; }
.visual-toolbar .box-color-trigger { display:flex; align-items:center; gap:5px; min-width:48px; padding:3px 6px; }
.box-color-trigger > span { width:18px; height:18px; border:2px solid #fff; border-radius:4px; background:var(--current-box-color,#fff); box-shadow:0 0 0 1px #cfd4d2; }
.box-color-trigger .ui-icon { font-size:12px; color:var(--muted); }
.box-color-palette { position:absolute; z-index:20; top:calc(100% + 6px); left:0; display:grid; grid-template-columns:repeat(4,28px); gap:7px; width:max-content; height:auto; padding:10px; border:1px solid var(--line); border-radius:7px; background:#fff; box-shadow:0 12px 30px rgba(41,44,46,.18); }
.box-color-palette[hidden] { display:none; }
.visual-toolbar .box-color-palette button { position:relative; width:20px; min-width:20px; height:20px; padding:0; border:2px solid #fff; border-radius:5px; background:var(--swatch); box-shadow:0 0 0 1px #cfd4d2; }
.visual-toolbar .box-color-palette button:hover { transform: scale(1.08); box-shadow: 0 0 0 2px rgba(107,145,161,.3); }
.visual-toolbar .box-color-palette button.active { box-shadow: 0 0 0 2px var(--alliance-blue), 0 0 0 4px rgba(107,145,161,.16); transform: scale(.9); }
#addCustomField { max-width: 190px; }
#boxFontFamily { flex:1 1 150px; min-width:120px; max-width:240px; }
#boxFontSize { width:58px; }
.box-align-buttons { display:flex; align-items:center; height:30px; padding:2px; border:1px solid var(--line); border-radius:6px; background:#fff; }
.visual-toolbar .box-align-buttons button { display:grid; place-items:center; width:28px; height:24px; padding:0; border:0; background:transparent; color:var(--muted); }
.visual-toolbar .box-align-buttons button:hover { background:var(--blue-soft); color:var(--blue-deep); }
.visual-toolbar .box-align-buttons button.active { background:var(--blue-deep); color:#fff; }
#deleteTextBox { margin-left:auto; }
.slide-editor-shell { border-radius: 15px; background: #e3e7e5; padding: 20px; }
.slide-editor-canvas { border-radius: 8px; box-shadow: 0 14px 34px rgba(31,39,41,.18); }
.insert-type { border-radius: 14px; }
.insert-type:hover { border-color: var(--alliance-blue); background: var(--blue-soft); transform: translateX(2px); }
.saved-liturgy-card { border-radius: 13px; }
.toast { right: 22px; bottom: 22px; background: var(--ink); border-left: 4px solid var(--alliance-yellow); border-radius: 12px; box-shadow: 0 14px 36px rgba(28,34,36,.2); }

#bibleSlideDialog { width: min(680px, calc(100vw - 30px)); }
.bible-modal-head h2 { font-size: 27px; }
.bible-modal-head h2 + p { margin: 5px 0 0; color: var(--muted); font: 400 12px/1.4 "Times New Roman", Times, serif; font-style: italic; }
.bible-version { display: flex; align-items: center; gap: 11px; margin: -3px 0 14px; padding: 10px 12px; border-radius: 12px; background: var(--yellow-soft); color: #775f17; }
.bible-version > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: var(--alliance-yellow); color: #fff; font-size: 16px; }
.bible-version div { display: grid; gap: 2px; }
.bible-version select { min-width: 220px; margin-left: auto; border-color: rgba(140,112,25,.22); background: rgba(255,255,255,.78); color: #665319; font-size: 11px; font-weight: 700; }
.bible-version small, .step-copy small, .bible-selection-card small, .verse-selectors small { font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.bible-version strong { font: 700 12px "Times New Roman", Times, serif; }
.bible-picker { display: grid; gap: 9px; }
.bible-step { display: grid; grid-template-columns: 34px minmax(130px, .8fr) minmax(190px, 1.2fr); align-items: center; gap: 11px; margin: 0; padding: 11px 12px; border: 1px solid var(--line); border-radius: 13px; background: #fbfcfb; }
.bible-step:focus-within { border-color: var(--alliance-blue); background: #fff; box-shadow: 0 0 0 3px rgba(107,145,161,.1); }
.step-number { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--blue-soft); color: var(--blue-deep); font-size: 12px; font-weight: 800; }
.bible-step:nth-child(2) .step-number { background: var(--green-soft); color: #5d7b40; }
.bible-step:nth-child(3) .step-number { background: var(--yellow-soft); color: #8d7015; }
.step-copy { display: grid; gap: 2px; }
.step-copy small { color: var(--alliance-gray); }
.step-copy strong { color: var(--ink); font-size: 12px; }
.bible-step > select { margin: 0; min-width: 0; background-color: #fff; }
.bible-verse-step { grid-template-columns: 34px minmax(130px,.8fr) minmax(190px,1.2fr); }
.verse-selectors { display: grid; grid-template-columns: 1fr auto 1fr; align-items: end; gap: 8px; }
.verse-selectors > span { align-self: center; padding-top: 12px; color: var(--muted); font: italic 12px "Times New Roman", Times, serif; }
.verse-selectors label { margin: 0; gap: 3px; }
.verse-selectors label small { color: var(--alliance-gray); }
.verse-selectors select { width: 100%; min-width: 0; }
.bible-selection-card { display: flex; align-items: center; gap: 13px; margin: 14px 0 10px; padding: 13px 15px; border-radius: 14px; background: linear-gradient(135deg, var(--blue-deep), #5f8798); color: #fff; box-shadow: 0 10px 24px rgba(70,111,128,.18); }
.bible-selection-card > span { font-size: 25px; }
.bible-selection-card div { display: grid; gap: 2px; }
.bible-selection-card small { color: rgba(255,255,255,.68); }
.bible-selection-card strong { font: 700 20px "Times New Roman", Times, serif; }
.bible-selection-card em { color: rgba(255,255,255,.78); font-size: 10px; font-style: normal; }
.bible-help { margin: 0 0 14px; text-align: center; }
#bibleSlideDialog .modal-actions { padding-top: 4px; border-top: 1px solid var(--line); }

@media (max-width: 1180px) {
  .workspace { grid-template-columns: minmax(290px,.8fr) minmax(400px,1.2fr); }
  .preview { display: none; }
}
@media (max-width: 760px) {
  html, body { height: auto; min-height: 100%; overflow-x: hidden; overflow-y: auto; }
  .topbar { height: 70px; padding-inline: 14px; gap: 12px; }
  .brand { min-width: 0; }
  .brand-logo { width: 40px; height: 40px; }
  .brand-copy strong { font-size: 14px; }
  .topbar nav .nav-active::after { bottom: -10px; }
  .live-status, .church > span:nth-child(2), .brand-copy small { display: none; }
  .workspace { display: block; width: 100%; height: auto; min-height: calc(100vh - 70px); overflow: visible; padding: 10px; }
  .panel { height: auto; border-radius: 17px; }
  .queue-head-actions { justify-content: flex-start; margin-top: 12px; }
  .section-head.queue-head { align-items: flex-start; flex-direction: column; }
  .queue-guide span:last-child { display: none; }
  .queue-footer { align-items: flex-start; gap: 12px; }
  .queue-presentation-actions { width: 100%; }
  .queue-presentation-actions button { flex: 1; }
  .field-grid { grid-template-columns: 1fr; }
  .bible-step, .bible-verse-step { grid-template-columns: 34px 1fr; }
  .bible-step > select, .verse-selectors { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Geometria compacta: cantos mais precisos em toda a experiência. */
.panel, dialog, .visual-editor-dialog, .insert-slide-dialog { border-radius: 9px !important; }
button, input, textarea, select,
.primary, .secondary, .present-button, .icon-button, .close,
.library-accordion, .song-docx-dropzone, .search,
.song-card, .queue-card, .preview-block, .editor-block,
.empty-state, .slide-editor-shell, .slide-editor-canvas,
.insert-type, .saved-liturgy-card, .announcement-card,
.authorization-check, .url-extraction-preview, .prompt-help,
.rich-text-toolbar, .rich-text-editor, .bible-step,
.bible-selection-card, .toast { border-radius: 5px !important; }
.song-glyph, .slide-thumb, .queue-index, .brand-mark,
.default-slide-button, .slide-library-rename, .slide-library-edit,
.add-queue, .duplicate-block, .remove-block,
.box-color-palette, .box-color-palette button,
.rich-text-toolbar button, .step-number, .bible-version,
.bible-version > span { border-radius: 4px !important; }
.chip, .count, .live-status, .avatar, .library-accordion-head i { border-radius: 6px !important; }
.eyebrow::before, .live-status i { border-radius: 2px !important; }
.block-tag, .dynamic-field-badge, .form-error, .preview-hint { border-radius: 3px !important; }
