/* KUS AI職場の気づき川柳 v0.1.15 */
.kus-senryu,
.kus-senryu *,
.kus-senryu-modal,
.kus-senryu-modal * {
  box-sizing: border-box;
}

.kus-senryu,
.kus-senryu-modal {
  /* 京都大学外科交流センター会員サイトの基調色 #337ab7 */
  --kus-primary: #337ab7;
  --kus-primary-dark: #204d74;
  --kus-primary-hover: #286090;
  --kus-primary-soft: #eef6fc;
  --kus-bg: #f5f8fb;
  --kus-panel: #ffffff;
  --kus-line: #d4e2ee;
  --kus-text: #263746;
  --kus-muted: #71808d;
  --kus-warning: #7b5200;
  --kus-warning-bg: #fff6dc;
}

.kus-senryu {
  width: 100%;
  max-width: 860px;
  margin: 28px auto;
  padding: clamp(24px, 5vw, 42px);
  color: var(--kus-text);
  background: var(--kus-panel);
  border: 1px solid var(--kus-line);
  border-radius: 18px;
  box-shadow: 0 12px 36px rgba(35, 48, 58, 0.08);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
  line-height: 1.75;
}

/* テーマ側の見出し装飾を確実に解除 */
.kus-senryu .kus-senryu-header,
.kus-senryu .kus-senryu-header h2,
.kus-senryu .kus-senryu-header p {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.kus-senryu .kus-senryu-header {
  margin: 0 0 26px !important;
  padding: 0 !important;
  text-align: center;
}

.kus-senryu .kus-senryu-header h2 {
  margin: 10px 0 12px !important;
  padding: 0 !important;
  color: var(--kus-text) !important;
  font-size: clamp(30px, 5vw, 44px) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  letter-spacing: 0.02em !important;
}

.kus-senryu .kus-senryu-header > p:not(.kus-senryu-eyebrow) {
  max-width: 670px;
  margin: 0 auto !important;
  padding: 0 !important;
  color: var(--kus-muted) !important;
  font-size: 15px !important;
  line-height: 1.8 !important;
}

.kus-senryu .kus-senryu-eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  margin: 0 !important;
  padding: 4px 13px !important;
  color: var(--kus-primary-dark) !important;
  background: var(--kus-primary-soft) !important;
  border: 0 !important;
  border-radius: 999px;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
}

.kus-senryu .kus-senryu-test-banner {
  margin: 0 0 22px !important;
  padding: 12px 15px !important;
  color: var(--kus-warning) !important;
  background: var(--kus-warning-bg) !important;
  border: 1px solid #ecd594 !important;
  border-radius: 10px;
  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1.65 !important;
}

.kus-senryu .kus-senryu-status {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 16px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}

.kus-senryu .kus-senryu-status > span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 10px 14px;
  background: var(--kus-bg);
  border: 1px solid var(--kus-line);
  border-radius: 11px;
  color: #46545c;
  font-size: 14px;
  text-align: center;
}

.kus-senryu .kus-senryu-status strong {
  margin-left: 5px;
  color: var(--kus-primary-dark);
  font-size: 16px;
}

.kus-senryu .kus-senryu-notice {
  margin: 0 0 22px !important;
  padding: 14px 16px !important;
  color: var(--kus-primary-dark) !important;
  background: var(--kus-primary-soft) !important;
  border: 1px solid #c9ddec !important;
  border-radius: 11px;
  font-size: 13px !important;
  line-height: 1.7 !important;
}

.kus-senryu .kus-senryu-label {
  display: block;
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: var(--kus-text) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
}

.kus-senryu #kus-senryu-input {
  display: block;
  width: 100% !important;
  min-height: 160px;
  margin: 0 !important;
  padding: 16px !important;
  resize: vertical;
  color: var(--kus-text) !important;
  background: #fbfcfc !important;
  border: 1px solid #b7c9d8 !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  font: inherit !important;
  font-size: 15px !important;
  line-height: 1.75 !important;
  outline: none !important;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}

.kus-senryu #kus-senryu-input:focus {
  background: #ffffff !important;
  border-color: var(--kus-primary) !important;
  box-shadow: 0 0 0 4px rgba(51, 122, 183, 0.18) !important;
}

.kus-senryu .kus-senryu-counter {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin: 6px 0 20px !important;
  padding: 0 !important;
  color: var(--kus-muted) !important;
  font-size: 12px !important;
}

.kus-senryu .kus-senryu-tone {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  margin: 0 0 22px !important;
  padding: 15px 17px !important;
  background: #fbfcfc !important;
  border: 1px solid var(--kus-line) !important;
  border-radius: 12px !important;
}

.kus-senryu .kus-senryu-tone legend {
  margin: 0 !important;
  padding: 0 8px !important;
  color: var(--kus-text) !important;
  background: var(--kus-panel) !important;
  border: 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

.kus-senryu .kus-senryu-tone label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0 !important;
  padding: 0 !important;
  color: #45535b !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  cursor: pointer;
}

.kus-senryu .kus-senryu-tone input[type="radio"] {
  width: 17px !important;
  height: 17px !important;
  margin: 0 !important;
  accent-color: var(--kus-primary);
}

.kus-senryu button.kus-senryu-primary,
.kus-senryu button.kus-senryu-secondary,
.kus-senryu button.kus-senryu-post,
.kus-senryu-modal button.kus-senryu-primary,
.kus-senryu-modal button.kus-senryu-secondary {
  appearance: none;
  min-height: 48px;
  margin: 0 !important;
  padding: 10px 22px !important;
  border-radius: 11px !important;
  box-shadow: none !important;
  font: inherit !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  cursor: pointer;
  transition: transform 0.15s, background 0.2s, border-color 0.2s;
}

.kus-senryu button.kus-senryu-primary,
.kus-senryu button.kus-senryu-post,
.kus-senryu-modal button.kus-senryu-primary {
  color: #ffffff !important;
  background: var(--kus-primary) !important;
  border: 1px solid var(--kus-primary) !important;
}

.kus-senryu button.kus-senryu-primary:hover,
.kus-senryu button.kus-senryu-post:hover,
.kus-senryu-modal button.kus-senryu-primary:hover {
  color: #ffffff !important;
  background: var(--kus-primary-hover) !important;
  border-color: var(--kus-primary-dark) !important;
  transform: translateY(-1px);
}

.kus-senryu button.kus-senryu-secondary,
.kus-senryu-modal button.kus-senryu-secondary {
  color: var(--kus-text) !important;
  background: #ffffff !important;
  border: 1px solid var(--kus-line) !important;
}

.kus-senryu button.kus-senryu-primary:disabled,
.kus-senryu button.kus-senryu-post:disabled,
.kus-senryu-modal button.kus-senryu-primary:disabled {
  color: #65757b !important;
  background: #e5ebed !important;
  border-color: #d5dee1 !important;
  transform: none;
  cursor: default;
}

.kus-senryu .kus-senryu-response {
  margin: 16px 0 0 !important;
  padding: 12px 14px !important;
  border-radius: 9px;
  font-size: 14px !important;
  line-height: 1.7 !important;
}

.kus-senryu .kus-senryu-response--error {
  color: #952f2f !important;
  background: #fff0f0 !important;
  border: 1px solid #efc9c9 !important;
}

.kus-senryu .kus-senryu-response--warning {
  color: #725000 !important;
  background: #fff7e2 !important;
  border: 1px solid #ead49a !important;
}

.kus-senryu .kus-senryu-response--success {
  color: #1d6534 !important;
  background: #edf8f0 !important;
  border: 1px solid #c5e4ce !important;
}

.kus-senryu .kus-senryu-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 26px 0 0 !important;
  padding: 0 !important;
}

.kus-senryu .kus-senryu-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  margin: 0 !important;
  padding: 20px !important;
  background: linear-gradient(135deg, rgba(51, 122, 183, 0.08), transparent 62%), #ffffff !important;
  border: 1px solid var(--kus-line) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.kus-senryu .kus-senryu-card-label {
  margin: 0 0 8px !important;
  padding: 0 !important;
  color: var(--kus-muted) !important;
  background: transparent !important;
  border: 0 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.kus-senryu .kus-senryu-poem {
  flex: 1;
  margin: 0 0 18px !important;
  padding: 0 !important;
  white-space: pre-line;
  color: var(--kus-text) !important;
  background: transparent !important;
  border: 0 !important;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-size: clamp(19px, 2.3vw, 25px) !important;
  font-weight: 500 !important;
  line-height: 1.8 !important;
  letter-spacing: 0.06em !important;
}

.kus-senryu .kus-senryu-message {
  max-width: 820px;
  margin: 24px auto !important;
  padding: 18px !important;
  border-radius: 12px;
}

.kus-senryu-message--warning {
  color: #725000 !important;
  background: #fff7e2 !important;
  border: 1px solid #ead49a !important;
}

.kus-senryu-modal[hidden] {
  display: none !important;
}

.kus-senryu-modal {
  position: fixed;
  z-index: 99999;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 18px;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", sans-serif;
}

.kus-senryu-modal .kus-senryu-modal-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: rgba(18, 31, 36, 0.58) !important;
}

.kus-senryu-modal .kus-senryu-modal-dialog {
  position: relative;
  width: min(560px, 100%);
  max-height: calc(100vh - 36px);
  overflow-y: auto;
  margin: 0 !important;
  padding: clamp(22px, 5vw, 34px) !important;
  background: #ffffff !important;
  border: 0 !important;
  border-radius: 17px !important;
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.23) !important;
}

.kus-senryu-modal .kus-senryu-modal-dialog h2 {
  margin: 0 0 17px !important;
  padding: 0 !important;
  color: var(--kus-text, #24323a) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  font-size: 22px !important;
  line-height: 1.5 !important;
}

.kus-senryu-modal .kus-senryu-selected {
  margin: 0 0 17px !important;
  padding: 17px !important;
  white-space: pre-line;
  color: var(--kus-primary-dark) !important;
  background: var(--kus-primary-soft) !important;
  border: 1px solid #c6ddeb !important;
  border-radius: 11px !important;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-size: 22px !important;
  line-height: 1.75 !important;
  letter-spacing: 0.06em !important;
  text-align: center;
}

.kus-senryu-modal .kus-senryu-small-note {
  color: #849096 !important;
  font-size: 12px !important;
  line-height: 1.7 !important;
}

.kus-senryu-modal .kus-senryu-small-note ul {
  margin: 0 !important;
  padding-left: 1.4em !important;
}

.kus-senryu-modal .kus-senryu-modal-actions {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 12px;
  width: 100%;
  margin: 24px 0 0 !important;
  padding: 0 !important;
}

/*
 * テーマ側のbutton指定に影響されても、投稿・戻るボタンを確実に表示する。
 * v0.1.4ではモーダルにCSS変数が継承されず、投稿ボタンの背景指定が
 * 無効になる環境があったため、表示属性も明示する。
 */
.kus-senryu-modal .kus-senryu-modal-actions button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 50px !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: static !important;
}

.kus-senryu-modal #kus-senryu-confirm-submit {
  color: #ffffff !important;
  background: var(--kus-primary) !important;
  border: 1px solid var(--kus-primary) !important;
}

.kus-senryu-modal #kus-senryu-confirm-submit:hover,
.kus-senryu-modal #kus-senryu-confirm-submit:focus {
  color: #ffffff !important;
  background: var(--kus-primary-hover) !important;
  border-color: var(--kus-primary-hover) !important;
}

.kus-senryu-modal button.kus-senryu-secondary {
  color: var(--kus-primary-dark) !important;
  background: #ffffff !important;
  border: 1px solid var(--kus-line) !important;
}

.kus-senryu-modal button.kus-senryu-secondary:hover,
.kus-senryu-modal button.kus-senryu-secondary:focus {
  color: var(--kus-primary-dark) !important;
  background: var(--kus-primary-soft) !important;
  border-color: #b9d3e8 !important;
}

@media (max-width: 820px) {
  .kus-senryu .kus-senryu-results {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 600px) {
  .kus-senryu {
    margin: 18px 0;
    padding: 22px 16px;
    border-radius: 14px;
  }

  .kus-senryu .kus-senryu-status {
    grid-template-columns: 1fr;
  }

  .kus-senryu .kus-senryu-tone {
    flex-direction: column;
    gap: 9px;
  }


  .kus-senryu .kus-senryu-header h2 {
    font-size: 28px !important;
  }

  .kus-senryu button.kus-senryu-primary,
  .kus-senryu button.kus-senryu-secondary,
  .kus-senryu button.kus-senryu-post,
  .kus-senryu-modal button.kus-senryu-primary,
  .kus-senryu-modal button.kus-senryu-secondary {
    width: 100%;
  }

  .kus-senryu-modal .kus-senryu-modal-actions {
    grid-template-columns: 1fr;
  }
}


/* 交流センターへの問い合わせ案内 */
.kus-senryu .kus-senryu-contact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
  margin: 34px 0 0 !important;
  padding: 22px !important;
  background: var(--kus-primary-soft) !important;
  border: 1px solid #c9ddec !important;
  border-radius: 14px !important;
}

.kus-senryu .kus-senryu-contact h3,
.kus-senryu .kus-senryu-contact p {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.kus-senryu .kus-senryu-contact h3 {
  margin: 3px 0 8px !important;
  padding: 0 !important;
  color: var(--kus-primary-dark) !important;
  font-size: 19px !important;
  line-height: 1.5 !important;
}

.kus-senryu .kus-senryu-contact p {
  margin: 0 !important;
  padding: 0 !important;
  color: #4f6270 !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
}

.kus-senryu .kus-senryu-contact .kus-senryu-contact-kicker {
  color: var(--kus-primary) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
}

.kus-senryu .kus-senryu-contact .kus-senryu-contact-note {
  margin-top: 7px !important;
  color: var(--kus-muted) !important;
  font-size: 11px !important;
}

.kus-senryu .kus-senryu-contact-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px;
  padding: 10px 20px !important;
  color: #ffffff !important;
  background: var(--kus-primary) !important;
  border: 1px solid var(--kus-primary) !important;
  border-radius: 11px !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1.4 !important;
  text-decoration: none !important;
  white-space: nowrap;
}

.kus-senryu .kus-senryu-contact-button:hover,
.kus-senryu .kus-senryu-contact-button:focus {
  color: #ffffff !important;
  background: var(--kus-primary-hover) !important;
  border-color: var(--kus-primary-hover) !important;
  text-decoration: none !important;
}

@media (max-width: 700px) {
  .kus-senryu .kus-senryu-contact {
    grid-template-columns: 1fr;
  }

  .kus-senryu .kus-senryu-contact-button {
    width: 100%;
  }
}


/* =========================================================
   委員会専用 確認・投票ページ
   ========================================================= */

.kus-senryu .kus-committee-status {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 22px !important;
}

.kus-senryu .kus-committee-status > span {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  padding: 10px 14px;
  color: #46586a;
  background: var(--kus-bg);
  border: 1px solid var(--kus-line);
  border-radius: 11px;
  font-size: 14px;
  text-align: center;
}

.kus-senryu .kus-committee-status strong {
  margin-left: 5px;
  color: var(--kus-primary-dark);
}

.kus-senryu .kus-committee-list {
  display: grid;
  gap: 18px;
}

.kus-senryu .kus-committee-card {
  padding: 22px !important;
  background: #fff !important;
  border: 1px solid var(--kus-line) !important;
  border-radius: 15px !important;
  box-shadow: none !important;
}

.kus-senryu .kus-committee-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 13px;
  color: var(--kus-muted);
  font-size: 12px;
  font-weight: 700;
}

.kus-senryu .kus-committee-test {
  display: inline-flex;
  padding: 3px 9px;
  color: #932d2d;
  background: #fff0f0;
  border: 1px solid #efcaca;
  border-radius: 999px;
}

.kus-senryu .kus-committee-poem {
  margin: 0 0 14px !important;
  padding: 22px !important;
  white-space: pre-line;
  color: var(--kus-primary-dark) !important;
  background: var(--kus-primary-soft) !important;
  border: 1px solid #c6ddeb !important;
  border-radius: 12px !important;
  font-family: "Yu Mincho", "Hiragino Mincho ProN", serif !important;
  font-size: clamp(21px, 3vw, 28px) !important;
  line-height: 1.8 !important;
  letter-spacing: .07em !important;
  text-align: center;
}

.kus-senryu .kus-committee-category {
  margin: 0 0 15px !important;
  color: var(--kus-muted) !important;
  font-size: 13px !important;
}

.kus-senryu .kus-committee-vote,
.kus-senryu .kus-committee-comment-save {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 9px 20px !important;
  color: #fff !important;
  background: var(--kus-primary) !important;
  border: 1px solid var(--kus-primary) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  font: inherit !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  cursor: pointer;
}

.kus-senryu .kus-committee-vote.is-selected {
  color: var(--kus-primary-dark) !important;
  background: var(--kus-primary-soft) !important;
  border-color: #a9cbe5 !important;
}

.kus-senryu .kus-committee-vote:disabled,
.kus-senryu .kus-committee-comment-save:disabled {
  opacity: .65;
  cursor: wait;
}

.kus-senryu .kus-committee-comment-box {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--kus-line);
}

.kus-senryu .kus-committee-comment-box label {
  display: block;
  margin-bottom: 7px;
  color: var(--kus-text);
  font-size: 14px;
  font-weight: 700;
}

.kus-senryu .kus-committee-comment-box textarea {
  display: block;
  width: 100% !important;
  min-height: 92px;
  padding: 12px 14px !important;
  resize: vertical;
  color: var(--kus-text) !important;
  background: #fbfcfd !important;
  border: 1px solid #b7c9d8 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  font: inherit !important;
}

.kus-senryu .kus-committee-comment-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin-top: 9px;
}

.kus-senryu .kus-committee-comment-actions small {
  color: var(--kus-muted);
  line-height: 1.6;
}

.kus-senryu .kus-committee-comments {
  margin-top: 19px;
  padding: 16px;
  background: var(--kus-bg);
  border: 1px solid var(--kus-line);
  border-radius: 11px;
}

.kus-senryu .kus-committee-comments h3 {
  margin: 0 0 10px !important;
  padding: 0 !important;
  color: var(--kus-text) !important;
  background: none !important;
  border: 0 !important;
  font-size: 15px !important;
}

.kus-senryu .kus-committee-comments blockquote {
  margin: 8px 0 !important;
  padding: 10px 13px !important;
  color: #495b68 !important;
  background: #fff !important;
  border: 0 !important;
  border-left: 3px solid var(--kus-primary) !important;
  font-size: 13px !important;
  line-height: 1.75 !important;
}

.kus-senryu .kus-committee-no-comments,
.kus-senryu .kus-committee-empty {
  margin: 0 !important;
  padding: 18px !important;
  color: var(--kus-muted) !important;
  background: var(--kus-bg) !important;
  border: 1px solid var(--kus-line) !important;
  border-radius: 11px !important;
  text-align: center;
}

@media (max-width: 700px) {
  .kus-senryu .kus-committee-status {
    grid-template-columns: 1fr;
  }

  .kus-senryu .kus-committee-comment-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .kus-senryu .kus-committee-vote,
  .kus-senryu .kus-committee-comment-save {
    width: 100% !important;
  }
}


.kus-senryu .kus-committee-card.is-voted {
  border-color: var(--kus-primary) !important;
  box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.12) !important;
}

.kus-senryu .kus-committee-card-badges {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.kus-senryu .kus-committee-my-vote {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  color: #ffffff;
  background: var(--kus-primary);
  border: 1px solid var(--kus-primary);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}

.kus-senryu .kus-committee-my-vote[hidden] {
  display: none !important;
}


.kus-senryu .kus-committee-selected {
  display: inline-flex;
  align-items: center;
  padding: 3px 9px;
  color: #ffffff;
  background: #2f7d4a;
  border: 1px solid #2f7d4a;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
}
