: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; }
#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; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
.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; }
.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; }
.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-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; }
.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; }
.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; }
.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: 330px; padding: 15px; line-height: 1.7; resize: vertical; }
.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; }
.ppt-review-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.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: 25px; min-height: 25px; border: 1px solid #c9d9ce; border-radius: 5px; background: #fff; cursor: pointer; }
.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; }
.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; }
@media (max-width: 900px) { .shell { grid-template-columns: 1fr; } .sidebar { min-height: 0; padding: 18px; } .brand { padding-bottom: 15px; } .sidebar-section-label, .weeks-list, .new-week-form { max-width: 500px; } .sidebar-foot { margin-top: 20px; } .main { padding: 30px 20px 70px; } .bulletin-layout, .editor-layout, .publish-layout, .archive-layout { grid-template-columns: 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; } }
