/* Approved student composer: same-page draft, text workspace and secondary attachments. */
body.board-page[data-board-role="student"] #writeModal.write-dialog {
  width: min(1120px, calc(100vw - 40px)); height: auto; max-width: none; max-height: calc(100dvh - 40px);
  inset: 0; margin: auto; padding: 0; border: 1px solid #dfd7ec; border-radius: 18px;
  color: #2b2338; background: #fff; overflow: hidden; box-shadow: 0 22px 80px #2215363d;
}
body.board-page[data-board-role="student"] #writeModal::backdrop { background: #20182f75; backdrop-filter: blur(2px); }
body.board-page[data-board-role="student"] #writeModal:not([open]) { display: none !important; }
body.board-page[data-board-role="student"] #writeModal[open] { display: block; }
body.board-page[data-board-role="student"] #writeModal .write-modal {
  display: flex; flex-direction: column; width: 100%; max-width: none; height: auto; max-height: calc(100dvh - 42px);
  margin: 0; padding: 0; border: 0; border-radius: 18px; color: #2b2338; background: #fff; box-shadow: none; overflow: hidden;
}
body.board-page[data-board-role="student"] #writeModal .modal-header { flex: 0 0 auto; display: flex; align-items: center; gap: 20px; margin: 0; padding: 26px 42px 20px; border: 0; background: #fff; }
body.board-page[data-board-role="student"] #writeModal .modal-header h2 { margin: 0; font-size: 24px; font-weight: 800; }
body.board-page[data-board-role="student"] #writeModal .close-btn { display: grid; place-items: center; width: 44px; height: 44px; min-height: 44px; margin-left: auto; padding: 0; border: 0; border-radius: 7px; color: #6d617c; background: transparent; font-size: 23px; }
body.board-page[data-board-role="student"] #writeModal .modal-body { flex: 1 1 auto; min-height: 0; padding: 0 42px 24px; overflow: auto; overscroll-behavior: contain; }
body.board-page[data-board-role="student"] #writeModal .write-modal-intro { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 18px; margin: 0 0 22px; padding: 11px 14px; border: 1px solid #dfd7ec; border-radius: 9px; background: #f8f6fc; }
body.board-page[data-board-role="student"] #writeModal .writer-lock-group { display: flex; align-items: center; gap: 9px; margin: 0; padding: 0; border: 0; background: transparent; }
body.board-page[data-board-role="student"] #writeModal .writer-lock-group label { margin: 0; font-size: 13px; }
body.board-page[data-board-role="student"] #writeModal .writer-lock-input-wrap { width: 95px; }
body.board-page[data-board-role="student"] #writeModal #postAuthor { width: 100%; min-height: 0; height: auto; padding: 0; border: 0; color: #3a3049; background: transparent; font-size: 14px; font-weight: 700; opacity: 1; }
body.board-page[data-board-role="student"] #writeModal .write-author-avatar { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 50%; color: #fff; background: #7046d4; font-size: 13px; }
#studentBoardComposeDraftNote { flex: 1 1 330px; margin: 0; color: #766b84; font-size: 12px; line-height: 1.6; }
body.board-page[data-board-role="student"] #writeModal .write-form-stack { display: grid; grid-template-columns: minmax(0, 1.78fr) minmax(280px, 1fr); grid-template-rows: min-content min-content minmax(0, 1fr); gap: 16px 48px; align-items: start; align-content: start; }
body.board-page[data-board-role="student"] #writeModal #postTitleGroup { grid-column: 1; grid-row: 1; }
body.board-page[data-board-role="student"] #writeModal #postShelfGroup { grid-column: 1; grid-row: 2; }
body.board-page[data-board-role="student"] #writeModal #postContentGroup { grid-column: 1; grid-row: 3; }
body.board-page[data-board-role="student"] #writeModal .write-form-stack:has(#postShelfGroup[hidden]) #postContentGroup { grid-row: 2; }
body.board-page[data-board-role="student"] #writeModal .write-form-stack:has(#postShelfGroup[hidden]) { grid-template-rows: min-content minmax(0, 1fr); }
body.board-page[data-board-role="student"] #writeModal .write-form-stack:has(#postShelfGroup[hidden]) #writeAttachmentPanel { grid-row: 1 / span 2; }
body.board-page[data-board-role="student"] #writeModal .form-group { min-width: 0; margin: 0; }
body.board-page[data-board-role="student"] #writeModal label { margin-bottom: 9px; color: #42354f; font-size: 16px; font-weight: 650; }
body.board-page[data-board-role="student"] #writeModal :is(input:not([type="color"]):not([type="file"]), select) { min-height: 43px; padding: 9px 12px; border: 1px solid #d6cee2; border-radius: 7px; color: #30263d; background: #fff; font-size: 15px; }
body.board-page[data-board-role="student"] #writeModal .rich-editor-shell { border: 1px solid #d6cee2; border-radius: 8px; background: #fff; overflow: hidden; }
body.board-page[data-board-role="student"] #writeModal .rich-editor-toolbar { display: flex; flex-wrap: wrap; gap: 3px; padding: 6px 9px; border-bottom: 1px solid #e2ddeb; background: #f8f6fc; }
body.board-page[data-board-role="student"] #writeModal .rich-editor-btn { min-width: 33px; width: 33px; min-height: 33px; padding: 5px; border: 0; border-radius: 5px; color: #5b4e69; background: transparent; }
body.board-page[data-board-role="student"] #writeModal .rich-editor-color { margin: 0; }
body.board-page[data-board-role="student"] #writeModal .rich-editor { min-height: 270px; max-height: 440px; padding: 16px 18px; border: 0; color: #30263d; font-size: 17px; line-height: 1.8; overflow: auto; }
body.board-page[data-board-role="student"] #writeModal #writeAttachmentPanel { grid-column: 2; grid-row: 1 / span 3; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body.board-page[data-board-role="student"] #writeModal .write-attachment-header { display: none; }
body.board-page[data-board-role="student"] #writeModal .write-attachment-content { display: flex; flex-direction: column; gap: 20px; padding: 0; }
body.board-page[data-board-role="student"] #writeModal .write-attachment-content > .form-group { padding: 0; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
body.board-page[data-board-role="student"] #writeModal #postImageGroup { display: flex; flex-direction: column; order: 0; }
body.board-page[data-board-role="student"] #writeModal #postImageGroup > label { order: 0; }
body.board-page[data-board-role="student"] #writeModal #imagePreview { order: 1; width: 100%; margin: 0 0 9px; border: 1px solid #e1d9ed; border-radius: 10px; background: #f8f6fc; overflow: hidden; }
body.board-page[data-board-role="student"] #writeModal #imagePreview:not(.active) { display: none; }
body.board-page[data-board-role="student"] #writeModal #imagePreview img { display: block; width: 100%; height: auto; max-height: 225px; object-fit: contain; }
body.board-page[data-board-role="student"] #writeModal #postImageGroup .upload-row { order: 2; }
body.board-page[data-board-role="student"] #writeModal #imageMetaText { order: 3; }
body.board-page[data-board-role="student"] #writeModal #imageDropzone { order: 4; min-height: 64px; margin-top: 8px; padding: 15px 10px; border: 1px dashed #c6b8df; border-radius: 8px; color: #756584; background: #faf8fe; font-size: 12px; }
body.board-page[data-board-role="student"] #writeModal #postImageGroup:has(#imagePreview.active) #imageDropzone { min-height: 36px; margin-top: 4px; padding: 8px; }
body.board-page[data-board-role="student"] #writeModal #postAttachmentGroup { order: 1; }
body.board-page[data-board-role="student"] #writeModal #studentBoardPostCurrentFiles { order: 2; }
body.board-page[data-board-role="student"] #writeModal #postLinkGroup { order: 3; }
body.board-page[data-board-role="student"] #writeModal .upload-row { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px; }
body.board-page[data-board-role="student"] #writeModal .file-input { flex: 1 1 160px; width: auto; height: 40px; min-height: 40px; max-height: 40px; min-width: 0; max-width: 100%; padding: 0; border: 0; background: transparent; color: #675a78; font-size: 12px; }
body.board-page[data-board-role="student"] #writeModal .file-input::file-selector-button { min-height: 36px; margin-right: 8px; padding: 5px 12px; border: 1px solid #cfbfdf; border-radius: 6px; color: #67418e; background: #faf7fe; cursor: pointer; }
body.board-page[data-board-role="student"] #writeModal :is(#btnClearImage, #btnClearAttachment) { min-height: 36px; padding: 5px 10px; border: 1px solid #d8cede; border-radius: 6px; color: #665771; background: #fff; font-size: 12px; }
body.board-page[data-board-role="student"] #writeModal :is(.input-helper-text, .input-count) { color: #807389; font-size: 12px; }
body.board-page[data-board-role="student"] #writeModal .input-meta-row { margin-top: 5px; }
.student-board-compose-policy { margin: 24px 0 0; padding: 9px 13px; border: 1px solid #ebd4a8; border-radius: 7px; color: #7c5723; background: #fffbf1; font-size: 13px; line-height: 1.6; }
body.board-page[data-board-role="student"] #writeModal .write-status-text { margin: 10px 0 0; color: #604a79; font-size: 13px; }
body.board-page[data-board-role="student"] #writeModal .write-status-text:empty { display: none; }
body.board-page[data-board-role="student"] #writeModal .write-status-text[data-tone="bad"] { color: #a13f38; }
body.board-page[data-board-role="student"] #writeModal .modal-footer { flex: 0 0 auto; display: flex; align-items: center; gap: 12px; margin: 0; padding: 22px 42px; border-top: 1px solid #e6dfef; background: #fff; }
body.board-page[data-board-role="student"] #writeModal .modal-footer button { min-height: 46px; padding: 9px 21px; border: 1px solid #d6cbe4; border-radius: 7px; color: #5a466e; background: #fff; font-size: 16px; font-weight: 650; }
body.board-page[data-board-role="student"] #writeModal #btnClearDraft { margin-right: auto; padding-inline: 13px; font-size: 13px; }
body.board-page[data-board-role="student"] #writeModal #btnSavePost { min-width: 150px; border-color: #6037d1; color: #fff; background: #6037d1; }
.write-submit-hint { color: #83758f; font-size: 11px; }
.student-board-post-conflict { margin-top: 15px; padding: 15px; border: 1px solid #dfc29b; border-radius: 9px; background: #fffcf5; font-size: 13px; }
.student-board-post-conflict h3 { margin: 0 0 8px; font-size: 15px; }
.student-board-post-conflict pre { max-height: 150px; margin: 0; white-space: pre-wrap; overflow: auto; font: inherit; }
.student-board-post-conflict button { min-height: 38px; padding: 6px 10px; border: 1px solid #d4bf9f; border-radius: 6px; color: #775526; background: #fff; font: inherit; }
body.board-page[data-board-role="student"] #writeModal [hidden] { display: none !important; }
body.board-page[data-board-role="student"] #writeModal :is(button, input, select):focus-visible { outline: 3px solid #aa90e9; outline-offset: 2px; }
body.board-page[data-board-role="student"] #writeModal .rich-editor:focus-visible { outline: 2px solid #a58cd9; outline-offset: -2px; }
body.board-page[data-board-role="student"] #writeModal :is(button, input, select):disabled { cursor: not-allowed; opacity: .65; }
@media (max-width: 900px) {
  body.board-page[data-board-role="student"] #writeModal.write-dialog { width: calc(100vw - 28px); max-height: calc(100dvh - 28px); }
  body.board-page[data-board-role="student"] #writeModal .write-modal { max-height: calc(100dvh - 30px); }
  body.board-page[data-board-role="student"] #writeModal .modal-header { padding: 20px 20px 14px; }
  body.board-page[data-board-role="student"] #writeModal .modal-body { padding: 0 20px 18px; }
  body.board-page[data-board-role="student"] #writeModal .write-form-stack,
  body.board-page[data-board-role="student"] #writeModal .write-form-stack:has(#postShelfGroup[hidden]) { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-rows: min-content; gap: 16px; }
  body.board-page[data-board-role="student"] #writeModal #writeAttachmentPanel,
  body.board-page[data-board-role="student"] #writeModal .write-form-stack:has(#postShelfGroup[hidden]) #writeAttachmentPanel { grid-column: 1; grid-row: 4; }
  body.board-page[data-board-role="student"] #writeModal .rich-editor { min-height: 220px; }
  body.board-page[data-board-role="student"] #writeModal .write-attachment-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  body.board-page[data-board-role="student"] #writeModal .modal-footer { padding: 13px 20px; }
  .write-submit-hint { display: none; }
}
@media (max-width: 560px) {
  body.board-page[data-board-role="student"] #writeModal .write-attachment-content { display: flex; }
  body.board-page[data-board-role="student"] #writeModal .modal-footer { flex-wrap: wrap; gap: 8px; }
  body.board-page[data-board-role="student"] #writeModal #btnSavePost { min-width: 110px; }
}
