:root { font-family: 'Apple SD Gothic Neo', 'Malgun Gothic', system-ui, sans-serif; color: #1f3031; background: #f5f7f4; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; }
#service-type-hint { white-space: pre-line; line-height: 1.7; }
.bulletin-shortcuts { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px; margin-bottom: 24px; background: #f5f7f4; border: 1px solid #cbdad1; border-radius: 10px; box-shadow: 0 4px 12px #163e3b12; }
.bulletin-shortcuts nav { display: flex; flex-wrap: wrap; gap: 4px; }
.bulletin-shortcuts a { display: inline-flex; align-items: center; min-height: 44px; padding: 8px 12px; border-radius: 7px; color: #24584c; font-size: 13px; font-weight: 700; text-decoration: none; }
.bulletin-shortcuts a:hover { background: #e1eee5; }
.bulletin-shortcuts a:focus-visible { outline: 3px solid #a87b2d; outline-offset: 2px; }
.bulletin-quick-save { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.bulletin-quick-save small { color: #3f6356; }
.bulletin-save-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.bulletin-save-actions .button { min-height: 44px; }
#bulletin-upload-area, #offering-upload-section, #bulletin-field-mapping { scroll-margin-top: var(--bulletin-shortcut-offset, 120px); }
@media (max-width: 600px) {
  .bulletin-shortcuts { gap: 4px; padding: 8px; }
  .bulletin-shortcuts a { padding: 8px; }
  .bulletin-quick-save { width: 100%; justify-content: space-between; gap: 6px; }
  .bulletin-save-actions { width: 100%; }
  .bulletin-save-actions .button { flex: 1 1 140px; }
  #bulletin-upload-area, #offering-upload-section, #bulletin-field-mapping { scroll-margin-top: var(--bulletin-shortcut-offset, 170px); }
}
.publish-next-step { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 20px; margin-bottom: 22px; background: #edf5ef; border: 1px solid #bed6c6; border-radius: 12px; }
.publish-next-step > div { flex: 1; min-width: min(100%, 240px); }
.publish-next-step p { margin: 6px 0 0; line-height: 1.65; }
.publish-next-step button { min-height: 44px; }
.startup-state { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; padding: 24px; background: #f5f7f4; }
.startup-state[hidden] { display: none; }
.startup-card { width: min(100%, 480px); padding: 28px; border: 1px solid #d6e3da; border-radius: 14px; background: white; line-height: 1.7; }
.startup-card strong { font-size: 22px; }
.startup-card p { overflow-wrap: anywhere; }
#startup-error { color: #9b382b; }
#local-file-warning:not([hidden]) { display: grid; gap: 10px; max-width: 680px; margin: 12vh auto; padding: 30px; border: 1px solid #e4c98f; border-radius: 12px; background: #fff8e9; color: #513f24; line-height: 1.65; }
#local-file-warning strong { font-size: 20px; }
button, input, textarea, select { font: inherit; }
#annual-birthday-settings { margin: 16px 0; }
#annual-birthday-settings label { display: block; margin: 12px 0 6px; }
#annual-birthday-text { padding: 12px; line-height: 1.6; resize: vertical; }
#annual-birthday-range { max-width: 100%; padding: 8px; margin-bottom: 12px; }
#annual-birthday-result { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.6; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
.button:disabled, .upload-button:disabled { background: #e8ece9; color: #586960; border-color: #ccd6cf; box-shadow: none; }
.button[aria-busy="true"] { background: #dcebe5; color: #244b40; cursor: progress; }
.shell { display: grid; grid-template-columns: 264px minmax(0, 1fr); min-height: 100vh; }
.sidebar { display: flex; flex-direction: column; min-height: 100vh; padding: 28px 18px 22px; background: #163e3b; color: #fff; }
.brand { display: flex; align-items: center; gap: 12px; padding: 2px 8px 36px; }
.brand-mark { display: grid; place-items: center; width: 38px; height: 38px; background: #dfbd75; color: #173934; border-radius: 10px; font-family: serif; font-size: 23px; font-weight: 700; }
.brand strong { display: block; font-size: 18px; letter-spacing: -.04em; }
.brand small { display: block; margin-top: 4px; color: #afcdc6; font-size: 11px; }
.mobile-sidebar-toggle { display: none; }
.sidebar-section-label, .eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .17em; text-transform: uppercase; }
.sidebar-section-label { margin: 0 10px 12px; color: #a8c8c1; }
.weeks-list { display: grid; gap: 6px; }
.week-item { width: 100%; padding: 12px 13px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: #e4f0eb; text-align: left; }
.week-item:hover, .week-item.active { border-color: #6ca196; background: #28534e; }
.week-item strong { display: block; font-size: 14px; }
.week-item span { display: block; margin-top: 4px; color: #a8c8c1; font-size: 11px; }
.week-empty { padding: 8px 10px; color: #bbd1ca; font-size: 13px; line-height: 1.5; }
.week-item-row { display:flex; align-items:center; gap:4px; min-width:0; }
.week-item-row .week-item { flex:1; min-width:0; }
.week-trash-button { flex:none; width:40px; min-height:44px; border:1px solid #6ca196; border-radius:8px; background:transparent; color:#d5e8e1; }
#content-trash-dialog { width:min(620px,calc(100vw - 32px)); max-height:85dvh; overflow:auto; padding:24px; border:1px solid #c6d7cb; border-radius:14px; color:#243b36; }
#content-trash-dialog::backdrop { background:#102e2a80; }
#content-trash-dialog h2 { margin:0 0 12px; }
#content-trash-dialog p { line-height:1.6; overflow-wrap:anywhere; }
#content-trash-error { color:#a42926; }
.trash-dialog-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:20px; }
.trash-item { display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid #dce4df; padding:14px 0; }
.trash-item > div { min-width:0; overflow-wrap:anywhere; }
.trash-item small { display:block; color:#637770; margin-top:4px; }
.trash-item .button { flex:none; }
.new-week-form { margin-top: 26px; padding: 0 6px; }
.new-week-form label { display: block; margin-bottom: 9px; color: #d5e8e1; font-size: 12px; font-weight: 700; }
.new-week-row { display: flex; gap: 6px; }
.new-week-row input { width: 100%; min-width: 0; padding: 8px; border: 1px solid #6b958d; border-radius: 8px; background: #f7faf8; color: #1c3430; }
.new-week-row button { width: 36px; border: 0; border-radius: 8px; background: #dfbd75; color: #163e3b; font-size: 22px; }
.archive-nav { width: 100%; margin-top: 20px; padding: 13px; border: 1px solid #6ca196; border-radius: 10px; background: #28534e; color: #fff; text-align: left; font-size: 14px; font-weight: 700; }
.archive-nav span { display: block; margin-top: 4px; color: #b9d0c8; font-size: 11px; font-weight: 400; }
.sidebar-foot { margin-top: auto; padding: 20px 9px 0; border-top: 1px solid #436d65; color: #b9d0c8; font-size: 11px; line-height: 1.55; }
.access-gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: #eaf0e9; }
.access-card { width: min(100%, 430px); padding: 34px; border-radius: 18px; background: #fff; box-shadow: 0 16px 50px #163a2a20; }
.access-card .brand { color: #173934; padding: 0 0 24px; }
.access-card .brand small { color: #577268; }
.access-card h1 { margin: 0 0 8px; font-size: 27px; }
.access-card p { color: #56685f; line-height: 1.5; }
.access-card form { display: grid; gap: 14px; margin: 26px 0 14px; }
.access-card form label { display: grid; gap: 7px; font-size: 13px; font-weight: 700; }
.access-card input, .access-account input { width: 100%; padding: 11px 12px; border: 1px solid #bdcdc3; border-radius: 8px; font: inherit; }
.access-card form button { justify-content: center; }
.access-card #access-message { color: #a42926; }
.access-account { margin-top: auto; padding: 17px 8px; border-top: 1px solid #436d65; display: grid; gap: 9px; font-size: 12px; }
.access-account > button, .access-account form button, .access-user button { border: 1px solid #819f94; border-radius: 7px; padding: 7px 9px; background: transparent; color: inherit; cursor: pointer; }
.access-account form { display: grid; gap: 6px; }
.access-account #access-invite-result { overflow-wrap: anywhere; color: #f5daa4; }
.access-user { display: flex; justify-content: space-between; gap: 5px; align-items: center; padding: 7px 0; border-top: 1px solid #436d65; }
.access-user small { display: block; color: #b9d0c8; }
.main { min-width: 0; padding: 48px clamp(24px, 5vw, 76px) 90px; }
.empty-state { max-width: 670px; margin: min(22vh, 180px) auto 0; }
.eyebrow { color: #54847a; }
.empty-state h1 { margin: 20px 0 18px; font-family: Georgia, 'Apple SD Gothic Neo', serif; font-size: clamp(38px, 5vw, 64px); line-height: 1.19; letter-spacing: -.06em; }
.empty-state p { max-width: 510px; color: #6c7a78; font-size: 16px; line-height: 1.8; }
.workspace-header { display: flex; align-items: end; justify-content: space-between; gap: 24px; border-bottom: 1px solid #dce4df; padding-bottom: 25px; }
.workspace-header h1 { margin: 11px 0 6px; font-size: clamp(28px, 3vw, 38px); letter-spacing: -.06em; }
.workspace-header p { margin: 0; color: #72807d; font-size: 13px; }
.copied-from-warning { margin: 20px 0 0; padding: 13px 16px; border: 1px solid #ddcb95; border-radius: 9px; background: #fff8e7; color: #705725; font-size: 13px; line-height: 1.6; }
.archives-view > .field-hint { display: block; margin-top: 18px; }
.pptx-import-form { display: grid; grid-template-columns: minmax(220px, 1.5fr) minmax(140px, .8fr) minmax(170px, 1fr) minmax(170px, 1fr) auto; gap: 12px; align-items: end; margin-bottom: 22px; padding: 18px; border: 1px solid #dbe8dd; border-radius: 11px; background: #fff; }
.pptx-import-form strong { font-size: 14px; }
.pptx-import-form p { margin: 6px 0 0; color: #77877d; font-size: 11px; line-height: 1.5; }
.pptx-import-form label { display: grid; gap: 6px; color: #375b50; font-size: 11px; font-weight: 700; }
.pptx-import-form input { min-width: 0; width: 100%; padding: 9px; border: 1px solid #cad9d0; border-radius: 8px; background: #fff; color: #243b36; font-size: 12px; }
.pptx-import-form small { grid-column: 1 / -1; color: #819189; font-size: 11px; }
#archive-search { display: block; box-sizing: border-box; width: 100%; max-width: 600px; min-height: 48px; margin-top: 8px; padding: 12px 14px; border: 1px solid #cad9d0; border-radius: 8px; background: #fff; color: #243b36; }
#archive-search:focus-visible { outline: 3px solid #286b59; outline-offset: 3px; }
.archive-layout { display: grid; grid-template-columns: minmax(220px, .75fr) minmax(300px, 1.25fr); gap: 18px; align-items: start; }
.archives-list { display: grid; gap: 8px; }
.archive-item, .archive-detail { min-width: 0; border: 1px solid #e0e8e2; border-radius: 11px; background: #fff; box-shadow: 0 5px 20px #204d3810; }
.archive-item { display: grid; gap: 5px; padding: 14px 16px; color: #25453e; text-align: left; }
.archive-item.active { border-color: #398e78; background: #f2faf4; }
.archive-item strong { font-size: 13px; }
.archive-item span, .archive-item small, .archive-muted { color: #77877d; font-size: 11px; }
.archive-empty { padding: 18px; color: #77877d; font-size: 13px; }
.archive-detail { padding: 22px; color: #2b443d; }
.archive-detail > p { font-size: 13px; }
.archive-detail-head { display: flex; justify-content: space-between; gap: 12px; align-items: start; }
.archive-detail-head h2 { margin: 5px 0 0; font-size: 20px; }
.archive-detail-head small { color: #6a8b78; }
.archive-badge { border-radius: 99px; padding: 6px 9px; background: #edf2e9; color: #61765f; font-size: 11px; white-space: nowrap; }
.archive-detail details { margin: 20px 0; border-top: 1px solid #e5ede6; padding-top: 14px; }
.archive-detail summary { cursor: pointer; font-size: 13px; font-weight: 700; }
.archive-slides { max-height: 340px; overflow: auto; padding-left: 25px; }
.archive-slides li { padding: 8px 0; border-bottom: 1px solid #edf1ed; font-size: 12px; }
.archive-slides strong, .archive-slides span { display: block; }
.archive-slides span { margin-top: 3px; color: #74867b; white-space: pre-wrap; }
.archive-copy-form { margin: 18px 0; padding: 15px; border-radius: 9px; background: #f6faf5; }
.archive-copy-form label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 700; }
.archive-copy-form > div { display: flex; gap: 8px; flex-wrap: wrap; }
.archive-copy-form input { min-width: 150px; padding: 8px; border: 1px solid #c6d7cb; border-radius: 8px; }
.archive-import-info { overflow-wrap: anywhere; }
.archive-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.archive-actions a.button { display: inline-flex; align-items: center; text-decoration: none; }
.header-actions { display: flex; align-items: center; gap: 13px; white-space: nowrap; }
.save-state { color: #7d8b88; font-size: 12px; }
.save-state.dirty { color: #b46b33; }
.button { border-radius: 8px; padding: 11px 16px; font-size: 13px; font-weight: 700; border: 1px solid transparent; }
.button.primary { background: #1b6358; color: #fff; }
.button.primary:hover { background: #134b43; }
.button.secondary { background: #fff; color: #264a45; border-color: #bdd3cc; }
.button.secondary:hover { background: #e9f3ef; }
.button.quiet { background: #eef4ef; color: #2a6258; }
.button.quiet:hover { background: #dcebe2; }
.button.disabled { background: #e5e8e5; color: #89908b; }
.tabs { display: flex; gap: 27px; margin-top: 28px; border-bottom: 1px solid #dce4df; }
.tabs button { padding: 0 3px 15px; border: 0; border-bottom: 3px solid transparent; background: none; color: #87918d; font-size: 14px; font-weight: 700; }
.tabs button.active { border-bottom-color: #1c675b; color: #174d45; }
.panel { padding-top: 35px; }
.section-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 29px; }
.section-heading h2 { margin: 7px 0 5px; font-size: 25px; letter-spacing: -.04em; }
.section-heading p { margin: 0; color: #77827f; font-size: 13px; line-height: 1.55; }
.step-number { color: #d1ddd5; font-family: Georgia, serif; font-size: 55px; line-height: 1; }
.bulletin-layout, .editor-layout, .publish-layout { display: grid; grid-template-columns: minmax(260px, .9fr) minmax(320px, 1.1fr); gap: 24px; align-items: start; }
.editor-layout { grid-template-columns: minmax(240px, .65fr) minmax(520px, 1.35fr); }
.slide-detail { min-width: 0; display: grid; gap: 16px; }
.ppt-reference-tools { margin: 18px 0; padding: 16px; border: 1px solid #d5e2d9; border-radius: 12px; background: #fff; }
.ppt-reference-tools > summary { min-height: 36px; font-size: 15px; font-weight: 700; color: #24574b; }
.ppt-reference-tools > .field-hint { line-height: 1.65; }
.ppt-first-layout > .inline-ppt-editor { margin-bottom: 20px; }
.ppt-first-layout > .inline-ppt-editor iframe { height: max(540px, 72vh); }
.ppt-first-layout .actual-ppt-order { margin: 0; }
.inline-ppt-editor { min-width: 0; padding: 12px; border: 1px solid #c7dcd0; border-radius: 13px; background: #fff; box-shadow: 0 5px 20px #204d3810; }
.inline-ppt-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 2px 4px 10px; }
.inline-ppt-heading strong { color: #224b3e; font-size: 14px; }
.inline-ppt-heading p { margin: 4px 0 0; color: #617669; font-size: 11px; }
.inline-ppt-editor iframe { display: block; width: 100%; height: min(75vh, 760px); min-height: 540px; border: 1px solid #dce7df; border-radius: 7px; background: #f6f8f6; }
.inline-ppt-stage { position: relative; min-height: 0; }
.inline-ppt-guard { position: absolute; inset: 0; z-index: 2; display: grid; place-content: center; gap: 12px; padding: 24px; background: #f6f8f6ed; text-align: center; }
.inline-ppt-guard p { max-width: 440px; margin: 0; color: #34594d; font-size: 14px; line-height: 1.5; }
.inline-ppt-guard button { justify-self: center; }
.inline-ppt-editor > .field-hint { margin: 10px 4px 2px; }
.inline-ppt-editor.inline-expanded { position: fixed; z-index: 50; inset: 12px; display: flex; flex-direction: column; box-shadow: 0 12px 50px #17382d66; }
.inline-ppt-editor.inline-expanded .inline-ppt-stage { flex: 1; }
.inline-ppt-editor.inline-expanded iframe { height: 100%; min-height: 0; }
.publish-jump { display: inline-flex; margin: 0 0 14px; }
.static-preview-details { margin-top: 20px; color: #2d5949; font-size: 12px; }
.static-preview-details summary { cursor: pointer; font-weight: 700; }
.upload-area, .text-area-group, .slide-list-wrap, .inspector, .publish-summary, .limit-note { min-width: 0; background: #fff; border: 1px solid #e0e8e2; border-radius: 13px; padding: 20px; box-shadow: 0 5px 20px #204d3810; }
.bulletin-preview { display: grid; place-items: center; min-height: 330px; border: 1px dashed #bed0c5; border-radius: 9px; background: #f7faf6; color: #91a29a; font-size: 13px; overflow: hidden; }
.bulletin-preview img { display: block; max-width: 100%; max-height: 500px; object-fit: contain; }
.image-upload-surface { width: 100%; min-height: 160px; padding: 12px; font-family: inherit; font-weight: 400; color: #536f64; cursor: pointer; }
.image-upload-surface:hover { border-color: #286b59; background: #edf5f0; }
.image-upload-surface:focus-visible, summary:focus-visible { outline: 3px solid #286b59; outline-offset: 3px; }
.image-upload-surface:disabled { cursor: wait; }
summary { cursor: pointer; }
.upload-button { display: block; width: 100%; margin: 15px 0 8px; border: 0; border-radius: 8px; padding: 11px; background: #e6f0e9; color: #245d52; text-align: center; font-size: 13px; font-weight: 700; cursor: pointer; }
.upload-button.secondary-upload { margin-top: 7px; background: #f2f3ed; color: #5b6859; }
.upload-button.main-extract { background: #245d52; color: white; min-height: 44px; }
.upload-button.main-extract:disabled { background: #e4e9e5; color: #5c6c63; }
.upload-alternatives { margin: 14px 0; padding: 12px; border: 1px solid #dce6df; border-radius: 8px; }
.upload-alternatives summary { min-height: 32px; line-height: 1.6; font-size: 13px; font-weight: 700; color: #315c4b; }
.ai-extract-confirm { margin: 8px 0 14px; padding: 13px; border: 1px solid #cdb881; border-radius: 8px; background: #fff9e8; }
.ai-extract-confirm strong { color: #614b25; font-size: 13px; }
.ai-extract-confirm p { margin: 7px 0 12px; color: #6b5c40; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.ai-extract-confirm > div { display: flex; flex-wrap: wrap; gap: 7px; }
.ai-extract-confirm .button { padding: 8px 10px; font-size: 11px; }
.upload-area small, .field-hint { color: #83918a; font-size: 11px; line-height: 1.6; }
.ocr-status { margin: 12px 0 0; color: #93502b; font-size: 12px; line-height: 1.5; }
.ai-settings { margin-top: 12px; padding: 12px; border: 1px solid #d7e3da; border-radius: 8px; background: #f7faf6; }
.ai-settings summary { color: #245d52; font-size: 12px; font-weight: 700; cursor: pointer; }
.ai-settings p { color: #697d70; font-size: 11px; line-height: 1.5; }
.ai-settings label { display: block; margin: 10px 0; color: #425f52; font-size: 11px; font-weight: 700; }
.ai-settings input { display: block; width: 100%; box-sizing: border-box; margin-top: 5px; padding: 9px; border: 1px solid #c6d7cb; border-radius: 7px; background: #fff; color: #243b36; font-size: 12px; }
.ai-settings-actions { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }
.ai-settings-actions .button { padding: 8px 10px; font-size: 11px; }
#ai-settings-status { display: block; }
.text-area-group label, .inspector label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 700; }
textarea, .inspector input, .inspector select, .copy-row input { width: 100%; border: 1px solid #cad9d0; border-radius: 8px; background: #fff; color: #243b36; outline: none; }
textarea:focus, input:focus, select:focus { border-color: #208a74; box-shadow: 0 0 0 3px #208a7420; }
#bulletin-text { min-height: 180px; padding: 15px; line-height: 1.7; resize: vertical; }
.ppt-preparation-progress { margin: 16px 0; padding: 16px; border: 1px solid #b5d4c8; border-radius: 10px; background: #f0f7f3; }
.ppt-preparation-progress > [role="status"] { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.ppt-preparation-progress ol { display: grid; grid-template-columns: repeat(auto-fit,minmax(140px,1fr)); gap: 8px; margin: 12px 0; padding: 0; list-style: none; }
.ppt-preparation-progress li { padding: 8px; border-radius: 6px; color: #576960; background: #fff; }
.ppt-preparation-progress li[aria-current="step"] { color: #174e40; font-weight: 700; box-shadow: inset 0 0 0 2px #208a74; }
.ppt-preparation-progress[data-status="error"] { border-color: #a44839; background: #fff5f2; }
.ppt-preparation-progress[data-status="error"] > [role="status"] { color: #842f25; }
.suggestions { margin-top: 16px; }
.suggestions strong { display: block; margin-bottom: 7px; font-size: 12px; }
.suggestions p { margin: 0 0 5px; color: #556c64; font-size: 12px; line-height: 1.6; }
.suggestion-row { display: flex; align-items: center; justify-content: space-between; gap: 9px; padding: 7px 0; border-bottom: 1px solid #edf1ed; }
.suggestion-row p { margin: 0; }
.suggestion-row .button { flex: none; padding: 7px 9px; font-size: 11px; }
.ai-review { margin-bottom: 20px; padding: 16px; border: 1px solid #9fc4b5; border-radius: 10px; background: #f6fbf7; }
.ai-review-head { display: flex; justify-content: space-between; align-items: start; gap: 10px; margin-bottom: 12px; }
.ai-review-head h3 { margin: 0 0 4px; font-size: 16px; }
.ai-review-head p { margin: 0 0 5px; color: #567467; font-size: 11px; line-height: 1.5; }
.ai-review-head small { color: #307260; font-size: 11px; font-weight: 700; }
.ai-review-head .button { flex: none; padding: 7px 9px; font-size: 11px; }
.ai-review-rows { display: grid; gap: 8px; max-height: 470px; overflow: auto; margin-bottom: 12px; }
.ai-review-group { display: grid; gap: 8px; }
.ai-review-group h4 { margin: 10px 0 2px; color: #315849; font-size: 13px; }
.ai-review-row { padding: 10px; border: 1px solid #d6e5db; border-radius: 8px; background: #fff; }
.ai-review-row.accepted { border-color: #8abb9f; background: #f8fdf9; }
.ai-review-row.rejected { opacity: .68; }
.ai-review-row > strong { display: block; margin-bottom: 7px; color: #29594c; font-size: 12px; }
.ai-review-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ai-review-values > div { min-width: 0; padding: 8px; border-radius: 6px; background: #f3f7f4; }
.ai-review-values > div:last-child { background: #eaf5ed; }
.ai-review-values small { color: #738b7d; font-size: 10px; }
.ai-review-values p { margin: 3px 0 0; color: #243b36; font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-review-values em { color: #93a59a; font-style: normal; }
.ai-overwrite-note { display: block; margin-top: 6px; color: #a25c30; font-size: 10px; }
.ai-review-actions { display: flex; gap: 6px; justify-content: flex-end; margin-top: 9px; }
.ai-review-actions .button, #accept-blank-ai { padding: 7px 10px; font-size: 11px; }
.field-mapping { margin-top: 24px; padding: 22px; background: #fff; border: 1px solid #e0e8e2; border-radius: 13px; }
.field-mapping-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 18px; }
.field-mapping-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.field-mapping-head h3 { margin: 0 0 5px; font-size: 17px; }
.field-mapping-head p { margin: 0; color: #78877f; font-size: 12px; line-height: 1.5; }
.bulletin-fields { display: grid; gap: 22px; }
.bulletin-group { border-top: 1px solid #e1e9e3; padding-top: 14px; }
.bulletin-group:first-child { border-top: 0; padding-top: 0; }
.bulletin-group h4 { margin: 0 0 12px; color: #284e42; font-size: 14px; }
.bulletin-group-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 20px; }
.bulletin-field.wide { grid-column: 1 / -1; }
.bulletin-field label { display: block; margin-bottom: 5px; color: #375b50; font-size: 12px; font-weight: 700; }
.bulletin-field small { margin-left: 6px; color: #9aa9a0; font-weight: 400; }
.bulletin-field input, .bulletin-field textarea { width: 100%; padding: 9px 11px; border: 1px solid #cad9d0; border-radius: 8px; color: #243b36; font: inherit; }
.bulletin-field textarea { resize: vertical; min-height: 78px; }
.bulletin-field input[readonly] { background: #f3f7f4; color: #677e70; }
.day-override { margin-top: 7px; border-left: 3px solid #d9bc7c; padding: 5px 0 5px 10px; }
.day-override summary { cursor: pointer; color: #78623c; font-size: 11px; font-weight: 700; }
.day-override label { margin-top: 8px; }
.day-override button { margin-top: 8px; padding: 6px 10px; font-size: 11px; }
.presentation-use-editor { margin-top: 22px; padding-top: 18px; border-top: 1px solid #e5ede6; }
.ppt-review { margin-bottom: 24px; padding: 22px; background: #fff; border: 1px solid #e0e8e2; border-radius: 13px; box-shadow: 0 5px 20px #204d3810; }
.ppt-review h3 { margin: 0 0 7px; font-size: 17px; }
.ppt-review > p { color: #738078; font-size: 12px; line-height: 1.6; }
.offering-month { display: grid; gap: 12px; margin: 18px 0; padding: 16px; border: 1px solid #d4e1d7; border-radius: 10px; background: #f7faf6; }
.offering-month > div:first-child strong { color: #284a40; font-size: 14px; }
.offering-month > div:first-child p { margin: 6px 0 0; color: #738078; font-size: 12px; line-height: 1.5; }
.offering-month > label.button { width: fit-content; cursor: pointer; }
.offering-month-preview { max-height: 420px; overflow: auto; border: 1px solid #dce7dd; border-radius: 8px; background: #fff; color: #78877f; font-size: 12px; }
.offering-month-preview img { display: block; max-width: 100%; height: auto; }
.offering-month-candidate { color: #315b4d; font-size: 12px; line-height: 1.6; }
.offering-month-candidate p { white-space: pre-wrap; }
.offering-month-candidate small { color: #8a6a39; }
.offering-month > button { width: fit-content; }
#lesson-preparation > label { display: grid; gap: 8px; font-weight: 600; }
#lesson-preparation input { box-sizing: border-box; width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid #c7dbd2; border-radius: 10px; background: #fff; color: #193e35; font: inherit; font-weight: 400; }
#lesson-preparation input:focus-visible { outline: 3px solid #d6b867; outline-offset: 2px; }
.session-recovery { position: fixed; z-index: 10000; left: 16px; right: 16px; top: 16px; padding: 16px; border: 2px solid #ddb863; border-radius: 12px; background: #fff9e8; color: #183b35; box-shadow: 0 4px 24px #0003; max-height: calc(100vh - 32px); overflow: auto; }
.session-recovery p { margin: 0 0 12px; }
.session-recovery .button { margin: 4px 8px 4px 0; }
.offering-review-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.offering-review-layout > div { min-width: 0; }
.offering-review-content { display: grid; gap: 12px; }
.offering-review-content > button { width: fit-content; }
#offering-image-open { margin-bottom: 10px; }
@media (max-width: 900px) { .offering-review-layout { grid-template-columns: minmax(0, 1fr); } .offering-month-preview { max-height: 300px; } }
.ppt-review-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.ppt-review-fields.offering-review-fields { grid-template-columns: minmax(0, 1fr); }
#birthday-review-fields { grid-template-columns: minmax(0, 1fr); }
#birthday-upload-section select { width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #cad9d0; border-radius: 8px; background: #fff; color: #243b36; }
#birthday-review-fields textarea { min-height: 80px; font-size: 14px; }
.ppt-review-field { display: grid; gap: 8px; align-content: start; padding: 14px; border: 1px solid #e0e8e2; border-radius: 9px; background: #f9fbf8; }
.ppt-review-field > label:first-child { color: #284a40; font-size: 13px; font-weight: 700; }
.ppt-review-field label small, .ppt-review-field > small { color: #7b8a80; font-size: 11px; font-weight: 400; line-height: 1.5; }
.ppt-review-field textarea { min-height: 105px; padding: 10px; resize: vertical; font-size: 12px; line-height: 1.5; }
.ppt-review-field .review-check { color: #315b4d; font-size: 12px; }
.presentation-use-editor h3 { margin: 0 0 7px; font-size: 15px; }
.presentation-use-editor > p { color: #738078; font-size: 12px; line-height: 1.55; }
.presentation-use-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 12px 0; }
.presentation-use-fields label { display: grid; gap: 5px; color: #375b50; font-size: 11px; font-weight: 700; }
.presentation-use-fields input { width: 100%; min-width: 0; padding: 8px; border: 1px solid #cad9d0; border-radius: 7px; }
.presentation-use-fields .use-checkbox { display: flex; align-items: center; gap: 7px; }
.presentation-use-fields .use-checkbox input { width: auto; }
.use-run-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.use-run-list section { min-width: 0; max-height: 330px; overflow: auto; padding: 10px; border: 1px solid #dce8df; border-radius: 8px; background: #fbfdfb; }
.use-run-list h4 { margin: 0 0 8px; color: #315b4d; font-size: 12px; }
.use-run-list ol { margin: 0; padding-left: 26px; }
.use-run-list li { padding: 5px 0; color: #3f5145; font-size: 12px; }
.use-run-list li::marker { color: #718c79; }
.use-run-list li > span { display: inline-block; min-width: 130px; }
.use-run-list li > div { display: inline-flex; gap: 4px; margin-left: 7px; }
.use-run-list li button { min-width: 44px; min-height: 44px; border: 1px solid #c9d9ce; border-radius: 5px; background: #fff; cursor: pointer; }
.actual-ppt-order { margin-bottom: 24px; padding: 20px; border: 1px solid #c9d9ce; border-radius: 12px; background: #fff; }
.actual-ppt-order details { margin: 16px 0; }
.actual-ppt-order .presentation-use-editor { margin-top: 0; }
.use-run-list li button:disabled { opacity: .45; cursor: default; }
@media (max-width: 700px) { .use-run-list { grid-template-columns: 1fr; } }
.change-preview { margin-top: 22px; padding: 18px; border: 1px solid #b8d7c8; border-radius: 10px; background: #f5faf6; }
.change-preview-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.change-preview-head h3 { margin: 0 0 5px; font-size: 17px; }
.change-preview-head p { margin: 0 0 7px; color: #60786a; font-size: 12px; line-height: 1.5; }
.change-preview-head small { color: #457c64; }
.change-preview-warnings { margin-top: 8px; color: #985931; font-size: 12px; }
.change-preview-warnings p { margin: 4px 0; }
.change-preview-rows { display: grid; gap: 9px; margin-top: 14px; }
.change-preview-row { display: block; padding: 11px; border: 1px solid #d6e8db; border-radius: 8px; background: #fff; cursor: pointer; }
.change-preview-row-heading { display: flex; align-items: center; gap: 9px; color: #315a45; font-size: 12px; }
.change-preview-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 9px; }
.change-preview-values div { min-width: 0; padding: 8px; border-radius: 6px; background: #f3f6f3; }
.change-preview-values div:last-child { background: #e9f5ec; }
.change-preview-values small { color: #71877a; font-size: 10px; }
.change-preview-values p { margin: 4px 0 0; color: #283f33; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; }
.change-preview-actions { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 14px; color: #60786a; font-size: 12px; }
@media (max-width: 600px) { .change-preview-values { grid-template-columns: 1fr; } }
.list-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 13px; font-size: 13px; }
.list-top span { color: #8a9790; }
.slide-list { max-height: 560px; overflow: auto; display: grid; gap: 5px; }
.section-marker { padding: 11px 4px 6px; color: #37796a; font-size: 11px; font-weight: 800; letter-spacing: .07em; border-top: 1px solid #e5eee7; }
.section-marker:first-child { border-top: 0; padding-top: 0; }
.slide-item.transition { background: #fff5f4; border-color: #e6c7c4; }
.slide-item { display: flex; align-items: center; gap: 8px; border: 1px solid #e6eee8; border-radius: 8px; padding: 7px; }
.slide-item.active { border-color: #7eada0; background: #eef7f0; }
.slide-select { flex: 1; min-width: 0; display: flex; align-items: center; gap: 9px; border: 0; background: none; text-align: left; color: #28453c; }
.slide-index { color: #8ca198; font-size: 11px; width: 19px; }
.slide-select strong { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 12px; }
.slide-select small { display: block; margin-top: 2px; color: #8a9990; font-size: 10px; }
.move-button { border: 0; background: none; color: #6e8278; padding: 4px; font-size: 16px; }
.add-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.inspector h3 { margin: 1px 0 7px; font-size: 18px; }
.inspector p { margin: 0 0 22px; color: #809088; font-size: 12px; }
.field { margin-bottom: 18px; }
.inspector input, .inspector select { padding: 10px 12px; }
.inspector textarea { min-height: 150px; padding: 11px 12px; resize: vertical; line-height: 1.6; }
.inspector .danger { border: 0; background: none; color: #b45743; padding: 0; font-size: 12px; }
.mini-preview { margin-top: 22px; border: 1px solid #dce7df; border-radius: 8px; padding: 12px; background: #f8faf8; }
.slide-preview-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.slide-preview-controls button { border: 1px solid #b9cec1; border-radius: 6px; padding: 7px 12px; background: #fff; color: #2d5949; cursor: pointer; }
.slide-preview-controls button.active { background: #245d4c; color: #fff; }
.slide-preview-editor-link { margin-left: auto; border: 1px solid #245d4c; border-radius: 6px; padding: 7px 12px; background: #245d4c; color: #fff; font-size: 12px; text-decoration: none; }
.slide-preview-editor-note { margin: 0 0 10px !important; color: #625b3c !important; line-height: 1.45; }
.slide-preview-frame { position: relative; display: grid; place-items: center; aspect-ratio: 16/9; background: #e7ede8; color: #426154; overflow: hidden; }
.slide-preview-frame img { grid-area: 1 / 1; display: block; width: 100%; height: 100%; object-fit: contain; }
.slide-preview-frame span { grid-area: 1 / 1; padding: 18px; text-align: center; font-size: 13px; }
.slide-text-target { position: absolute; z-index: 2; border: 1px dashed rgba(25, 109, 77, .75); border-radius: 3px; background: rgba(255, 255, 255, .04); cursor: text; padding: 0; }
.slide-text-target:hover, .slide-text-target:focus-visible { border: 2px solid #2caa77; background: rgba(56, 180, 125, .16); outline: 0; }
.slide-text-target.changed { border: 1px dashed #2caa77; }
.slide-inline-editor { position: absolute; z-index: 3; left: 3%; right: 3%; bottom: 3%; padding: 12px; border-radius: 8px; background: rgba(255, 255, 255, .97); box-shadow: 0 4px 20px #15382d55; font-size: 12px; }
.slide-inline-editor label { display: block; margin-bottom: 7px; color: #214b3d; font-weight: 700; }
.slide-inline-editor label > input[type="text"], .slide-inline-editor label > textarea { display: block; width: 100%; margin-top: 5px; background: #fff; }
.slide-inline-editor textarea { min-height: 65px; resize: vertical; }
.slide-inline-editor .slide-inline-confirm { font-weight: 400; }
.slide-inline-editor .slide-inline-confirm input { width: auto; }
.slide-inline-editor > div { display: flex; gap: 7px; }
.slide-inline-editor button { padding: 7px 10px; border: 1px solid #8ab39d; border-radius: 5px; background: #fff; color: #214b3d; cursor: pointer; }
.slide-inline-editor button[type="submit"] { background: #245d4c; color: #fff; }
.inspector .slide-preview-note, .inspector .slide-preview-values { margin: 10px 0 0; color: #526b5c; font-size: 12px; line-height: 1.5; white-space: pre-wrap; overflow-wrap: anywhere; }
.inspector .slide-preview-values { color: #294d40; font-weight: 600; }
.inspector .slide-preview-mismatch { margin: 10px 0 0; color: #526b5c; font-size: 12px; line-height: 1.5; }
.inspector .slide-preview-mismatch.warning { color: #9b4c37; font-weight: 700; }
.source-caution { padding: 10px 12px; border-radius: 7px; background: #fff4dc; color: #765314; font-size: 13px; line-height: 1.5; }
.source-map { margin-top: 20px; border: 1px solid #dce7df; border-radius: 10px; padding: 14px 18px; background: #fff; }
.source-map summary { cursor: pointer; font-weight: 700; }
.source-map p { color: #687b70; font-size: 13px; line-height: 1.6; }
.source-map-list { max-height: 360px; overflow: auto; border-top: 1px solid #edf1ed; }
.source-map-row { display: grid; grid-template-columns: 46px minmax(120px,1fr) minmax(110px,auto); gap: 12px; padding: 9px 2px; border-bottom: 1px solid #edf1ed; font-size: 12px; align-items: center; }
.source-map-row strong { color: #526b5c; text-align: right; }
.publish-summary h3 { margin: 2px 0 20px; font-size: 18px; }
.publish-readiness { margin: 18px 0 22px; padding: 18px 20px; border: 1px solid #c7dcd0; border-radius: 13px; background: #f5faf6; }
.publish-readiness strong { display: block; margin-bottom: 8px; color: #234c40; }
.publish-readiness p { margin: 7px 0 12px; color: #425e53; font-size: 13px; line-height: 1.6; }
.publish-readiness [role="status"] { font-weight: 700; }
.pptx-plan-result { margin: 14px 0; padding: 14px; border: 1px solid #ddcb95; border-radius: 9px; background: #fff9e9; color: #594b31; font-size: 12px; line-height: 1.6; }
.pptx-plan-result strong { display: block; font-size: 13px; }
.pptx-plan-result ul, .pptx-plan-result ol { padding-left: 20px; }
.pptx-plan-result li { margin: 5px 0; }
.pptx-plan-result details { margin-top: 12px; }
.trial-action { margin: 18px 0; padding-top: 15px; border-top: 1px solid #e5ede6; }
.trial-action p, .trial-history { color: #738078; font-size: 12px; line-height: 1.55; }
.trial-history { margin: 13px 0; }
.trial-history ul { padding-left: 18px; }
.trial-playback-content { max-height: 340px; overflow: auto; padding: 8px 10px; border: 1px solid #e5ede6; border-radius: 8px; background: #fbfdfb; }
.trial-playback-content ol { padding-left: 22px; }
.trial-playback-content li { margin: 7px 0; color: #3f5145; }
.trial-playback-content li.trial-review-changed { padding: 7px; border-left: 3px solid #b98c48; background: #fff8ed; }
.trial-playback-content li label { display: block; margin-bottom: 4px; font-size: 12px; font-weight: 700; color: #315849; cursor: pointer; }
.trial-review-progress { padding: 8px 10px; border-radius: 6px; background: #edf5ef; color: #345b45; font-size: 12px; font-weight: 700; }
.publish-summary dl { margin: 0 0 24px; }
.publish-summary dl div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #edf1ed; font-size: 13px; }
.publish-summary dt { color: #798881; }
.publish-summary dd { margin: 0; font-weight: 700; text-align: right; }
.publish-actions, .copy-row { display: flex; gap: 8px; flex-wrap: wrap; }
.copy-row { margin-top: 14px; }
.copy-row input { flex: 1; min-width: 150px; padding: 10px; color: #64766c; font-size: 11px; }
.limit-note { background: #f8f5ec; border-color: #e9dfc5; }
.limit-note strong { color: #765d32; font-size: 14px; }
.limit-note p { color: #776f5f; font-size: 13px; line-height: 1.75; }
.toast { position: fixed; z-index: 100; left: 50%; bottom: 24px; transform: translateX(-50%); max-width: min(90vw, 520px); padding: 12px 18px; border-radius: 9px; background: #183f3a; box-shadow: 0 10px 30px #10241e55; color: #fff; text-align: center; font-size: 13px; }
.presentation { position: fixed; z-index: 20; inset: 0; display: flex; flex-direction: column; background: #101d1b; color: #fff; }
.present-top, .present-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 24px; font-size: 12px; }
.present-top > div, .present-bottom > div { display: flex; align-items: center; gap: 10px; }
.present-top .eyebrow { color: #8bbbad; margin-right: 12px; }
.present-top .button { background: #29443e; color: #fff; border-color: #56766d; }
.present-stage { flex: 1; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4%; aspect-ratio: 16/9; width: min(100%, calc((100vh - 120px) * 16/9)); margin: auto; padding: 6%; background: radial-gradient(circle at 80% 20%, #356d60, #183e38 58%, #102d29); color: #fff; cursor: pointer; text-align: center; overflow: hidden; }
.present-stage.site-transition-layer { position: absolute; z-index: 30; flex: none; margin: 0; pointer-events: none; }
.present-stage.site-transition-out { animation: site-slide-crossfade var(--site-fade-duration, 350ms) linear both; }
@keyframes site-slide-crossfade { from { opacity: 1; } to { opacity: 0; } }
.present-stage .section { color: #c4e0d3; font-size: clamp(14px,1.6vw,28px); }
.present-stage h1 { margin: 0; font-size: clamp(36px,5vw,96px); line-height: 1.18; white-space: pre-wrap; }
.present-stage .body { max-width: 90%; font-size: clamp(22px,2.7vw,48px); line-height: 1.45; white-space: pre-wrap; }
.present-stage .warning { max-width: 760px; color: #f2d7a7; font-size: clamp(13px,1.3vw,22px); line-height: 1.5; }
.present-stage.hymn-stage { position: relative; display: block; padding: 0; background: #fff; container-type: size; }
.hymn-stage .hymn-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; }
.hymn-stage .hymn-score { position: absolute; object-fit: fill; }
.hymn-stage .hymn-title { position: absolute; display: flex; align-items: center; justify-content: center; margin: 0; padding: 0; color: #663300; font-family: "HY견고딕", "Apple SD Gothic Neo", sans-serif; font-size: 7.4cqh; font-weight: 800; line-height: 1; white-space: nowrap; -webkit-text-stroke: .06cqh #fff; text-shadow: .08cqh .08cqh .1cqh #0008; }
.present-stage.file-stage { gap: 2%; background: #172620; }
.present-stage.end-stage { justify-content: flex-start; padding: 0; background: #000; }
.end-stage .end-message { margin: 0; padding-top: 1.2%; color: #fff; font-size: clamp(14px,1.4vw,24px); font-weight: 700; }
.file-slide-texts { max-width: 90%; max-height: 70%; overflow: auto; font-size: clamp(18px,2.5vw,42px); line-height: 1.35; white-space: pre-wrap; }
.file-slide-texts p { margin: .3em 0; }
.present-stage.static-stage { position: relative; display: block; padding: 0; background: #fff; container-type: size; }
.static-stage .static-slide-image, .static-stage .static-slide-text, .static-stage .static-slide-shape, .static-stage .static-slide-line { position: absolute; box-sizing: border-box; }
.static-stage .static-slide-line { pointer-events: none; }
.static-stage .static-slide-image { overflow: hidden; }
.static-stage .static-slide-image img { position: absolute; display: block; max-width: none; object-fit: fill; }
.static-stage .static-slide-text { overflow: hidden; line-height: 1.15; white-space: pre-wrap; word-break: keep-all; overflow-wrap: anywhere; }
.static-stage .static-slide-text.static-slide-autofit { overflow: visible; }
.static-stage .reading-step-fade { animation: reading-step-fade var(--reading-fade-duration, 500ms) linear both; }
@keyframes reading-step-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .static-stage .reading-step-fade { animation: none; } }
.static-stage .static-slide-badge { position: absolute; right: 1.2%; bottom: 1.2%; z-index: 50; padding: .3cqh .5cqw; border-radius: 3px; background: #173b37bb; color: #fff; font: 1.35cqh/1.2 "Apple SD Gothic Neo", sans-serif; pointer-events: none; }
.present-bottom button { width: 34px; height: 32px; border: 1px solid #648178; border-radius: 6px; background: #2b4c42; color: #fff; }
.present-jump { display: flex; align-items: center; gap: 5px; white-space: nowrap; color: #c2d8ce; }
.present-jump input { width: 56px; height: 32px; padding: 4px; border: 1px solid #648178; border-radius: 6px; background: #2b4c42; color: #fff; text-align: center; font: inherit; }
.presentation:fullscreen .present-top, .presentation:fullscreen .present-bottom { display: none; }
.presentation:fullscreen .present-stage { width: min(100vw, calc(100vh * 16/9)); }
.present-fullscreen-exit { display: none; position: fixed; top: 14px; right: 14px; border: 1px solid #ffffff66; border-radius: 7px; padding: 8px 12px; background: #183b37cc; color: #fff; opacity: .2; }
.presentation:fullscreen .present-fullscreen-exit { display: block; }
.present-fullscreen-exit:hover, .present-fullscreen-exit:focus-visible { opacity: 1; }
[hidden] { display: none !important; }
.advanced-section { margin: 16px 0; border: 1px solid #c9d9d3; border-radius: 10px; padding: 12px 16px; }
.advanced-section > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }
.advanced-section > summary::before { content: '▸'; margin-right: 10px; }
.advanced-section[open] > summary::before { content: '▾'; }
.next-step { margin: 24px 0; padding: 20px; border-top: 1px solid #c9d9d3; }
.button, .tabs button { min-height: 44px; }
:focus-visible { outline: 3px solid #278c73; outline-offset: 3px; }
@media (max-width: 600px) { .publish-actions { flex-direction: column; align-items: stretch; } .publish-actions > * { width: 100%; } .main { padding-bottom: max(70px, env(safe-area-inset-bottom)); } }
@media (max-width: 900px) { .shell { grid-template-columns: minmax(0, 1fr); } .sidebar { min-width: 0; min-height: 0; padding: 18px; } .sidebar-section-label, .weeks-list, .new-week-form { min-width: 0; max-width: 500px; } .sidebar-foot { margin-top: 20px; } .main { padding: 30px 20px 70px; } .bulletin-layout, .editor-layout, .publish-layout, .archive-layout { grid-template-columns: minmax(0, 1fr); } .workspace-header, .field-mapping-head { align-items: start; flex-direction: column; } }
@media (max-width: 900px) { .ppt-review-fields { grid-template-columns: 1fr; } }
@media (max-width: 1100px) { .pptx-import-form { grid-template-columns: repeat(2, minmax(0, 1fr)); } .pptx-import-form > div { grid-column: 1 / -1; } }
@media (max-width: 600px) { .bulletin-group-fields { grid-template-columns: 1fr; } .ai-review-head { flex-direction: column; } }
@media (max-width: 600px) { .pptx-import-form { grid-template-columns: 1fr; } .pptx-import-form > div { grid-column: auto; } }
@media (max-width: 600px) { .tabs { gap: 8px; } .tabs button { flex: 1; font-size: 11px; line-height: 1.3; } .present-top, .present-bottom { padding: 9px; } .present-top .button { padding: 7px; font-size: 10px; } .present-bottom > span:last-of-type { display: none; } }
@media (max-width: 600px) {
  .sidebar { position: relative; padding: 14px 16px; }
  .brand { padding: 0 95px 12px 0; }
  .mobile-sidebar-toggle { display: block; position: absolute; top: 19px; right: 16px; padding: 7px 10px; border: 1px solid #82ada2; border-radius: 7px; background: #28534e; color: white; font-size: 12px; }
  .sidebar.mobile-collapsed .new-week-form, .sidebar.mobile-collapsed .archive-nav,
  .sidebar.mobile-collapsed .access-account, .sidebar.mobile-collapsed .sidebar-foot { display: none; }
  .sidebar.mobile-collapsed .weeks-list { display: flex; overflow-x: auto; gap: 8px; }
  .sidebar.mobile-collapsed .week-item { flex: 0 0 175px; }
  .sidebar.mobile-collapsed .sidebar-section-label { margin-top: 4px; }
  .inline-ppt-editor.inline-expanded { inset: 0; border-radius: 0; }
  .inline-ppt-editor.inline-expanded .field-hint { display: none; }
}

/* Shared interaction/layout rules: the work remains visible while menus grow. */
.shell { align-items: start; }
.sidebar { position: sticky; top: 0; height: 100dvh; min-height: 0; overflow: hidden; gap: 12px; }
.sidebar .brand { flex: none; padding-bottom: 8px; }
.sidebar-content { min-height: 0; flex: 1; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-gutter: auto; scrollbar-width: thin; scrollbar-color: transparent transparent; display: flex; flex-direction: column; gap: 8px; }
/* Keep the menu scrollable without a permanent light rail on its dark surface. */
.sidebar-content:hover, .sidebar-content:focus-within { scrollbar-color: #82ada2 transparent; }
.sidebar-content::-webkit-scrollbar { width: 6px; height: 6px; }
.sidebar-content::-webkit-scrollbar-track { background: transparent; }
.sidebar-content::-webkit-scrollbar-thumb { border-radius: 999px; background: transparent; }
.sidebar-content:hover::-webkit-scrollbar-thumb, .sidebar-content:focus-within::-webkit-scrollbar-thumb { background: #82ada2; }
@media (forced-colors: active) { .sidebar-content, .sidebar-content:hover, .sidebar-content:focus-within { scrollbar-width: auto; scrollbar-color: auto; } }
.sidebar-content .access-account { margin-top: 20px; }
.sidebar-content .sidebar-foot { margin-top: 12px; }
.mobile-sidebar-toggle { display: block; position: static; min-height: 44px; padding: 10px; flex: none; border: 1px solid #82ada2; border-radius: 8px; background: #28534e; color: #fff; font-size: 13px; }
.shell.sidebar-collapsed { grid-template-columns: 88px minmax(0, 1fr); }
.sidebar-collapsed .sidebar { padding: 20px 8px; }
.sidebar-collapsed .sidebar .brand { padding: 0; justify-content: center; }
.sidebar-collapsed .brand > div { display: none; }
.sidebar-collapsed .mobile-sidebar-toggle { font-size: 12px; padding: 8px 4px; }
.sidebar-header { display:flex; align-items:center; gap:8px; flex:none; }
.sidebar-header .brand { min-width:0; flex:1; margin:0; padding:0; }
.sidebar-header .mobile-sidebar-toggle { width:44px; height:44px; padding:10px; border:0; background:transparent; flex:none; border-radius:8px; }
.mobile-sidebar-toggle svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.7; }
.mobile-sidebar-toggle.is-collapsed svg { transform:rotate(180deg); }
.mobile-menu-label { display:none; }
.mobile-sidebar-toggle:hover { background:#365d58; }
.mobile-sidebar-toggle:focus-visible,.sidebar-rail button:focus-visible { outline:3px solid #e0be6b; outline-offset:2px; }
.shell.sidebar-collapsed { grid-template-columns:72px minmax(0,1fr); }
.sidebar-collapsed .sidebar { padding:16px 10px; overflow:visible; }
.sidebar-collapsed .sidebar-header { flex-direction:column; }
.sidebar-collapsed .sidebar-header .brand { flex:none; }
.sidebar-rail { display:flex; flex-direction:column; gap:12px; }
.sidebar-rail button { position:relative; display:grid; place-items:center; width:48px; height:48px; border:0; border-radius:9px; background:transparent; color:#d3e4df; font-size:24px; cursor:pointer; }
.sidebar-rail button:hover,.sidebar-rail button[aria-current="page"] { background:#426a61; color:white; }
.sidebar-rail svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linejoin:round; stroke-linecap:round; }
.rail-label { position:absolute; left:56px; top:8px; padding:7px 11px; border-radius:7px; background:#163e3b; color:white; font-size:13px; white-space:nowrap; visibility:hidden; z-index:100; pointer-events:none; }
.sidebar-rail button:hover .rail-label,.sidebar-rail button:focus-visible .rail-label { visibility:visible; }
.archive-nav[aria-current="page"] { background:#426a61; border-color:#d8bd77; box-shadow:inset 3px 0 #d8bd77; }
.settings-view { max-width:1100px; }
.settings-view [data-settings-panel] { background:#fff; border:1px solid #d1dfd9; border-radius:18px; padding:24px; margin-top:20px; }
.settings-tabs,.settings-actions { display:flex; flex-wrap:wrap; gap:8px; }
.settings-tabs button { min-height:44px; border:1px solid #cadbd3; border-radius:9px; background:white; padding:10px 16px; color:#24554b; cursor:pointer; font-weight:700; }
.settings-tabs button[aria-pressed="true"] { background:#1e6256; color:white; border-color:#1e6256; }
.settings-view label,.settings-dialog label { display:block; margin:12px 0 6px; }
.settings-view input:not([type="checkbox"]),.settings-view select,.settings-dialog input:not([type="checkbox"]),.settings-dialog select { display:block; width:100%; padding:10px; min-height:44px; border:1px solid #c6d7cb; border-radius:8px; background:white; margin-top:6px; }
.settings-view details { margin-top:20px; padding:16px; border:1px solid #d2dfd9; border-radius:12px; }
.settings-view pre { max-height:360px; overflow:auto; white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:13px; }
.settings-search { display:grid; grid-template-columns:1fr 1fr 1.3fr; gap:16px; margin:16px 0; }
.birthday-person-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px 0; border-top:1px solid #e1e9e4; }
.birthday-person-row > div:first-child { min-width:0; }
.birthday-person-row strong { font-size:17px; }
.birthday-person-row p { margin:5px 0; }
.birthday-person-row small { display:block; overflow-wrap:anywhere; color:#667b73; margin:4px 0; }
.birthday-person-row .settings-actions { flex:none; }
.settings-save-bar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; position:sticky; bottom:12px; padding:14px; background:#edf5ef; border:1px solid #b9d2c7; border-radius:12px; z-index:5; }
.settings-save-bar span { flex:1; min-width:150px; }
.settings-save-bar [data-state="dirty"] { color:#9b5f00; font-weight:700; }
.settings-history-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; padding:12px 0; border-bottom:1px solid #e1e9e4; }
.settings-source-preview { padding:16px; border:1px solid #c6d7cb; background:#f7faf6; border-radius:12px; margin:16px 0; }
#settings-birthday-source-list { max-height:420px; overflow:auto; }
.settings-source-preview .birthday-source-row { display:flex; align-items:start; gap:12px; padding:12px; border-bottom:1px solid #dce5df; line-height:1.6; cursor:pointer; }
.birthday-source-row input { width:20px; height:20px; flex:none; margin-top:4px; }
.settings-dialog { max-width:540px; width:calc(100% - 32px); max-height:calc(100dvh - 40px); overflow:auto; padding:24px; border:1px solid #c6d7cb; border-radius:16px; }
.settings-dialog::backdrop { background:rgba(10,30,26,.5); }
.settings-dialog .use-checkbox { display:flex; gap:8px; align-items:center; }
.settings-dialog input[type="checkbox"] { width:20px; height:20px; }
.settings-date { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#settings-person-error { color:#a52f2c; }
#author-plan-versions { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
#author-plan-versions > p { width:100%; }
.button, .upload-button, .new-week-row input, .new-week-row button, .access-account button { min-height: 44px; }
.button { display: inline-flex; align-items: center; justify-content: center; line-height: 1.5; text-align: center; white-space: normal; }
.new-week-row button { flex: 0 0 44px; }
.header-actions, .archive-actions, .birthday-lookup-actions { flex-wrap: wrap; }
.birthday-lookup-actions { display: flex; gap: 8px; margin: 12px 0; }
.offering-month { grid-template-columns: minmax(0, 1fr); }
.offering-month > * { min-width: 0; }
#author-provenance, #author-warnings, #author-overflow, #author-source-cells { white-space: pre-wrap; overflow-wrap: anywhere; }
#birthday-upload-section { padding: 12px 16px; }
#birthday-week-panel > summary { font-weight: 700; }
#birthday-week-status { margin-left: auto; padding: 4px 8px; border-radius: 20px; background: #e7efe9; color: #466456; font-size: 12px; font-weight: 400; }
#birthday-week-panel > .field-hint { margin: 8px 0; }
#annual-birthday-result:empty { display: none; }
#annual-birthday-result { max-height: 180px; overflow: auto; background: #f2f7f3; padding: 12px; border-radius: 8px; }
.birthday-management, .birthday-placement { border: 1px solid #d9e4dc; border-radius: 8px; padding: 8px 12px; margin: 12px 0; }
details { overflow-anchor: none; }
summary { min-height: 44px; padding: 10px 0; line-height: 1.5; user-select: none; list-style: none; display: flex; align-items: center; gap: 10px; }
summary::-webkit-details-marker { display: none; }
summary::before { content: ''; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); flex: 0 0 8px; margin: 0 4px; }
details[open] > summary::before { transform: rotate(45deg); }
.advanced-section > summary::before { content: ''; margin: 0 4px; }
.advanced-section[open] > summary::before { content: ''; }
summary:hover { color: #1b6358; }
details[open] > summary { margin-bottom: 8px; }
.tabs { gap: 8px; }
.tabs button { flex: 1; padding: 10px 8px; line-height: 1.5; }
.section-heading p, .field-hint, .upload-area small { line-height: 1.65; }
.section-heading, .workspace-header { min-width: 0; }
.section-heading > div, .workspace-header > div { min-width: 0; overflow-wrap: anywhere; }
.pptx-import-form, .bulletin-layout, .publish-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pptx-import-form > div, .pptx-import-form > small { grid-column: 1 / -1; }
.pptx-import-form > button { justify-self: start; }
#birthday-upload-section { scroll-margin-top: var(--bulletin-shortcut-offset, 120px); }
@media (max-width: 1200px) and (min-width: 901px) {
  .shell { grid-template-columns: 230px minmax(0, 1fr); }
  .main { padding: 32px 24px 70px; }
  .bulletin-layout, .editor-layout, .publish-layout, .archive-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .shell, .shell.sidebar-collapsed { grid-template-columns: minmax(0, 1fr); }
  .sidebar, .sidebar-collapsed .sidebar { position: sticky; top: 0; z-index: 40; height: auto; max-height: 80dvh; padding: 14px 16px; }
  .sidebar .brand, .sidebar-collapsed .sidebar .brand { justify-content: start; padding: 0; }
  .sidebar-collapsed .brand > div { display: block; }
  .mobile-sidebar-toggle { position: absolute; right: 16px; top: 14px; max-width: 100px; }
  .sidebar .brand { padding-right: 110px; min-height: 44px; }
  .sidebar-content { max-height: calc(80dvh - 88px); }
  .sidebar-section-label, .weeks-list, .new-week-form { max-width: none; }
  .sidebar:not(.mobile-collapsed) .weeks-list { display: grid; }
  .bulletin-layout, .editor-layout, .publish-layout, .archive-layout { grid-template-columns: minmax(0, 1fr); }
  .bulletin-shortcuts { top: 72px; }
  #bulletin-upload-area, #offering-upload-section, #birthday-upload-section, #bulletin-field-mapping { scroll-margin-top: calc(var(--bulletin-shortcut-offset, 120px) + 72px); }
}
@media (max-width: 600px) {
  .main { padding: 24px 14px max(48px, env(safe-area-inset-bottom)); }
  .header-actions { width: 100%; justify-content: space-between; white-space: normal; }
  .pptx-import-form { grid-template-columns: minmax(0, 1fr); }
  .section-heading h2 { font-size: 22px; }
  .step-number { display: none; }
  .tabs button { font-size: 13px; }
  .birthday-lookup-actions > button { flex: 1; }
  #bulletin-upload-area, #offering-upload-section, #birthday-upload-section, #bulletin-field-mapping { scroll-margin-top: calc(var(--bulletin-shortcut-offset, 170px) + 72px); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.ppt-editor-expanded { overflow: hidden; }
.tabs { scroll-margin-top: 12px; }
.inline-ppt-heading { flex-wrap: wrap; }
.inline-ppt-heading > div { flex: 1; min-width: 180px; }
#access-invite-form label { display: grid; gap: 8px; min-width: 0; font-size: 12px; }
#access-invite-form input, .access-user span { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 900px) { .tabs { scroll-margin-top: 84px; } }
.archives-list { max-height: 70dvh; overflow-y: auto; overscroll-behavior: contain; padding: 3px; scrollbar-gutter: stable; }
.archive-detail { scroll-margin-top: 16px; overflow-wrap: anywhere; }
.archive-detail-head { flex-wrap: wrap; }
.archive-copy-form > div { flex-wrap: wrap; }
.archive-copy-form input { min-width: 0; max-width: 100%; }
.move-button { min-width: 44px; min-height: 44px; border-radius: 6px; }
.move-button:hover { background: #e1eee5; }
.inline-ppt-editor.preparation-failed .inline-ppt-stage { display: none; }
.inline-error-actions { display: flex; flex-wrap: wrap; gap: 12px; padding: 16px; background: #fff6e2; border-radius: 12px; }
.inline-error-actions p { flex-basis: 100%; margin: 0; }
#author-publications { max-height: 320px; overflow: auto; }
#author-publications p { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px; border-bottom: 1px solid #d4e2dc; }
#author-publications a { display: inline-flex; align-items: center; min-height: 44px; }
#author-publication-status { padding: 12px; background: #edf5ef; border-radius: 8px; }
.bulletin-advanced-format > div { display: flex; flex-wrap: wrap; gap: 12px; padding: 12px 0; }
.bulletin-advanced-format { flex-basis: 100%; }
.inspector .danger { min-height: 44px; padding: 8px 4px; }
:where(button, a, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid #a87b2d; outline-offset: 3px; }
[hidden] { display: none !important; }
/* Actions and disclosure controls share a predictable hit area. */
.ppt-action-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }
.ppt-action-heading { flex:1; min-width:0; }
.ppt-action-heading h3 { margin:0; }
.ppt-action-heading p { margin:8px 0 0; line-height:1.65; }
.ppt-action-header > .button { flex:none; margin:0; max-width:100%; min-height:44px; }
.publish-actions { align-items:center; gap:12px; }
.publish-actions > .button { min-height:44px; align-self:center; }
#legacy-presentation-options { margin-top:20px; }
summary { cursor:pointer; min-height:44px; padding-block:10px; line-height:1.5; }
summary:focus-visible { outline:3px solid #a87b2d; outline-offset:-3px; border-radius:6px; }
.button.primary:disabled, .button.secondary:disabled, .button.quiet:disabled, .upload-button:disabled { background:#e8ece9; color:#586960; border:1px solid #ccd6cf; box-shadow:none; }
.button.primary[aria-busy="true"] { background:#dcebe5; color:#244b40; cursor:progress; }
.archive-filter-label { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:12px 0; }
#archive-filter { min-height:44px; padding:8px 12px; border:1px solid #cad9d0; border-radius:8px; background:white; }
.archive-import-tools { margin-bottom:24px; border:1px solid #cad9d0; border-radius:12px; padding:8px 16px; }
.archive-date-group { border-bottom:1px solid #cad9d0; padding-bottom:12px; }
.archive-date-group h3 { margin:12px 0; font-size:14px; color:#4a675b; }
.archive-date-group summary { font-size:13px; color:#365d4e; }
.archive-date-group details .archive-item { margin-top:8px; }
.archives-list :focus-visible, .bulletin-author-resources :focus-visible { outline-offset:-3px; }
.ai-review-values > :only-child { grid-column:1 / -1; }
.bulletin-field textarea { width:100%; min-height:96px; padding:12px; border:1px solid #cad9d0; border-radius:8px; resize:vertical; line-height:1.65; }
.pptx-import-form input { min-height:44px; }
.pptx-import-form p, .pptx-import-form small, .pptx-import-form label, .field-hint { font-size:13px; line-height:1.65; color:#526b61; }
.ai-review-rows { max-height:none; }
@media(max-width:600px) {
  .ppt-action-header { flex-direction:column; gap:16px; }
  .ppt-action-header > .button { width:100%; }
  .publish-actions { align-items:stretch; }
  .publish-actions > .button { width:100%; }
  .bulletin-shortcuts { position:static; }
  .bulletin-shortcuts nav { display:flex; flex-wrap:nowrap; overflow-x:auto; width:100%; }
  .bulletin-shortcuts nav a { flex:none; }
  .archives-list { max-height:none; }
}
@media (max-width: 900px) {
  .archives-list { max-height: 50dvh; }
  .archive-detail { scroll-margin-top: 84px; }
}
@media(max-width:600px) { .archives-list { max-height:none; } }

/* Bulletin PDF is a candidate until the user explicitly registers one page. */
.bulletin-pdf-picker { padding:16px; margin:16px 0; border:2px solid #1b6256; border-radius:12px; background:#f5faf7; }
.bulletin-pdf-picker h3 { margin-top:0; }
.bulletin-pdf-picker select { width:100%; min-height:44px; margin:8px 0; }
#bulletin-pdf-page-preview { display:block; max-width:100%; max-height:440px; object-fit:contain; margin:12px auto; background:white; }
#bulletin-pdf-page-preview:not([src]) { display:none; }
#bulletin-pdf-status { overflow-wrap:anywhere; }
#birthday-week-panel > summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-height:48px; padding:12px; border:1px solid #cbded5; border-radius:8px; cursor:pointer; }
#birthday-week-panel > summary::before { content:'＋'; }
#birthday-week-panel[open] > summary { background:#e5f1ea; border-color:#1b6256; }
#birthday-week-panel[open] > summary::before { content:'−'; }
.birthday-toggle-label { font-size:13px; color:#1b6256; }
.birthday-main-input { padding:16px 0; }
#birthday-review-fields { display:block; }
#birthday-review-fields textarea { min-height:120px; height:140px; max-height:320px; resize:vertical; }
#birthday-review-fields .ppt-review-field > label:first-child small { display:none; }
#birthday-week-panel > details { border-top:1px solid #d9e4dc; margin:12px 0; padding:8px 0; }
#birthday-action-status:empty { display:none; }
#birthday-save { min-height:44px; }
#birthday-replace-dialog { max-width:min(440px,calc(100vw - 32px)); border:1px solid #cbded5; border-radius:16px; padding:24px; color:#203d35; }
#birthday-replace-dialog::backdrop { background:rgba(15,40,32,.45); }
@media(max-width:600px) {
  .birthday-lookup-actions { align-items:stretch; }
  .birthday-lookup-actions > button { flex:1 1 100%; }
  #birthday-save { width:100%; }
  .birthday-toggle-label { flex-basis:100%; }
}
@media(max-width:900px){
  .sidebar-header { min-height:44px; }
  .sidebar-header .mobile-sidebar-toggle { position:static; width:auto; display:flex; gap:6px; align-items:center; }
  .mobile-menu-label { display:inline; }
  .sidebar .sidebar-header .brand,.sidebar-collapsed .sidebar-header .brand { padding-right:0; }
  .sidebar-collapsed .sidebar-header { flex-direction:row; }
  .sidebar-rail { display:none; }
}
@media(max-width:650px){
  .settings-view [data-settings-panel] { padding:16px; }
  .settings-tabs button { flex:1 1 auto; padding:10px; }
  .settings-search { grid-template-columns:1fr; gap:0; }
  .birthday-person-row { align-items:start; flex-direction:column; }
  .birthday-person-row .settings-actions { width:100%; }
  .birthday-person-row .settings-actions button { flex:1; }
  .settings-save-bar { bottom:4px; padding:10px; }
  .settings-save-bar span { flex-basis:100%; }
  .settings-save-bar button { flex:1; }
  .settings-dialog { padding:18px; }
}
