/* Tool list tooltips (settings page) */
table.ai-tools td.name abbr {
  text-decoration: none;
  border-bottom: 1px dotted var(--a-color-info);
  cursor: help;
}

table.list.ai-models td.active {
  width: 5%;
}

table.list.ai-models td.token-usage {
  width: 20%;
}

/* Token usage status colors */
.token-usage-ok {
  color: var(--a-color-success);
}

.token-usage-warning {
  color: var(--a-color-warning);
  font-weight: bold;
}

.token-usage-exceeded {
  color: var(--a-color-alert);
  font-weight: bold;
}

div.ai-prompt.details { background: #eff2fb; }

/* Sticky header scroll-margin adjustments for ai_prompts (reuses Redmine's sticky-issue-header CSS) */
.controller-ai_prompts.action-show div.wiki a[name],
.controller-ai_prompts.action-show #history div[id^='note-'],
.controller-ai_prompts.action-show #history div[id^='change-'],
.controller-ai_prompts.action-show #add_comment_form {
  scroll-margin-top: var(--sticky-header-scroll-margin);
}

@media all and (max-width: 899px) {
  .controller-ai_prompts.action-show div.wiki a[name],
  .controller-ai_prompts.action-show #history div[id^='note-'],
  .controller-ai_prompts.action-show #history div[id^='change-'],
  .controller-ai_prompts.action-show #add_comment_form {
    scroll-margin-top: var(--sticky-header-scroll-margin-mobile);
  }
}

/* AI Prompt Results on Issue View */
#ai-prompt-results-section {
  margin-top: 1em;
}

.ai-prompt-results-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5em;
}

.ai-prompt-action-menu {
  position: relative;
  display: inline-block;
}

.ai-prompt-results {
  margin-top: 0.5em;
}

.ai-prompt-result-block {
  margin-bottom: 1em;
}

.ai-prompt-result-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.5em;
  padding-bottom: 0.5em;
  border-bottom: 1px solid var(--a-color-list-border);
  cursor: pointer;
}

.ai-prompt-result-header .ai-prompt-name {
  font-weight: bold;
}

.ai-prompt-result-header .ai-collapse-icon {
  vertical-align: text-bottom;
}

.ai-prompt-result-actions {
  display: flex;
  gap: 0.5em;
}

.ai-prompt-result-actions a {
  opacity: 0.7;
}

.ai-prompt-result-actions a:hover {
  opacity: 1;
}

@media all and (max-width: 899px) {
  .ai-prompt-result-actions a {
    font-size: 0;
  }
}

.ai-prompt-result-content {
  margin-bottom: 0.5em;
}

.ai-prompt-result-meta {
  font-size: var(--a-font-size-base);
  color: var(--a-color-info);
}

.ai-prompt-result-block .ai-prompt-result-meta a,
.ai-prompt-result-block .ai-prompt-result-meta a:hover {
  color: inherit;
  text-decoration: none;
}

/* Unified token details display (used in conversations, prompt results, dashboard blocks) */
.token-in,
.token-out {
  white-space: nowrap;
}

.token-details svg {
  vertical-align: -1px;
  stroke: var(--a-color-info);
}

.ai-prompt-result-privacy-terms {
  margin-top: 0.75em;
  padding: 0.5em 0.75em;
  font-size: var(--a-font-size-md);
  color: var(--a-color-dark);
  background-color: var(--a-color-even);
  border-left: 3px solid var(--a-color-list-border);
}

.ai-prompt-result-privacy-terms p {
  margin: 0;
}

/* Collapsed state for prompt result blocks */
.ai-prompt-result-block.collapsed .ai-prompt-result-header {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.ai-prompt-result-block.collapsed .ai-prompt-result-content,
.ai-prompt-result-block.collapsed .ai-prompt-result-meta,
.ai-prompt-result-block.collapsed .ai-prompt-result-privacy-terms {
  display: none;
}

.ai-prompt-pending .ai-loading {
  color: var(--a-color-info);
  font-style: italic;
}

.ai-prompt-result-block.ai-error {
  border-color: var(--a-color-alert);
}

.ai-prompt-result-block.ai-error .ai-prompt-result-content {
  color: var(--a-color-alert);
}

/* Error messages in AI prompt results (server-rendered) */
.ai-prompt-result-content .error {
  color: var(--a-color-alert);
}

/* stylelint-disable no-descending-specificity -- AI Prompt Action Menu: specificity order intentional */
.ai-prompt-action-menu .drdn-trigger > a {
  display: inline-flex;
  align-items: center;
  gap: 0.25em;
}

.ai-prompt-action-menu > .drdn-items {
  min-width: 200px;
}

.ai-prompt-action-menu > .drdn-items > li > a {
  display: block;
  padding: 0.5em 1em;
}

.ai-prompt-action-menu > .drdn-items > li > a:hover {
  background-color: var(--a-color-even);
}
/* stylelint-enable no-descending-specificity */

/* Disabled AI prompts in action dropdown (already executed) */
.ai-prompt-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* Non-functional prompts in list view (inactive or no matching active model) */
tr.ai-prompt.not-executable,
tr.ai-prompt.inactive {
  opacity: 0.5;
}

/* AI Answer button in jsToolBar (class name generated by jsToolBar core) */
/* stylelint-disable-next-line selector-class-pattern -- jsToolBar generates camelCase class names */
.jstb_aiAnswer {
  background-image: url("/assets/plugin_assets/redmine_ai/bt_issue_answers-85bfbb32.svg");
}

/* Similar Issues */
#similar-issues-section {
  margin-top: 1em;
}

.similar-issues-header {
  margin-bottom: 0.5em;
}

.similar-issues-list {
  margin: 0;
  padding-left: 1.5em;
}

.similar-issues-list li {
  margin: 0.3em 0;
}

.similar-issue-project {
  color: var(--a-color-info);
  font-size: var(--a-font-size-base);
  margin-left: 0.5em;
}

/* Similar Issues Suggestions (Issue New) */
#similar-issues-suggestions {
  margin-top: 0.5em;
}

.similar-issues-suggestions {
  background-color: var(--a-color-warning-bg);
  border-color: var(--a-color-warning-border);
}

.similar-issues-header-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.5em;
}

.similar-issues-scope {
  font-size: var(--a-font-size-md);
  padding: 1px 4px;
}

.similar-issue-duplicate-badge {
  color: var(--a-color-warning);
  font-weight: bold;
  margin-right: 0.3em;
}

/* AI Text Transform button in jsToolBar (class name generated by jsToolBar core) */
/* stylelint-disable-next-line selector-class-pattern -- jsToolBar generates camelCase class names */
.jstb_aiTextTransform {
  background-image: url("/assets/plugin_assets/redmine_ai/bt_text_transform-65390b4c.svg");
}

/* AI Text Transform Feedback */
.ai-text-transform-feedback {
  margin-top: 0.5em;
  padding: 0.5em 1em;
  border-radius: 3px;
  font-size: var(--a-font-size-base);
}

.ai-text-transform-success {
  background-color: var(--a-color-success-bg);
  border: 1px solid var(--a-color-success);
  color: var(--a-color-success);
}

.ai-text-transform-error {
  background-color: var(--a-color-alert-bg);
  border: 1px solid var(--a-color-alert);
  color: var(--a-color-alert);
}

/* AI Text Transform Modal - wider default size */

/* Note: Dialog width is set via JavaScript since jQuery UI uses inline styles */
#ajax-modal:has(.ai-text-transform-modal) {
  width: 100% !important;
  max-width: 100%;
  padding: 1em !important;
  box-sizing: border-box !important;
}

.ai-text-transform-modal {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.ai-text-transform-modal .ai-text-transform-controls {
  display: flex;
  align-items: center;
  gap: 0.5em;
  margin-bottom: 1em;
  padding-bottom: 1em;
  border-bottom: 1px solid var(--a-color-list-border);
}

/* Fullscreen toggle in dialog titlebar */
.ui-dialog-titlebar .ai-fullscreen-toggle {
  position: absolute;
  right: 1.8em;
  top: 50%;
  transform: translateY(-50%);
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s;
}

.ui-dialog-titlebar .ai-fullscreen-toggle:hover {
  opacity: 1;
}

.ai-text-transform-modal .ai-text-transform-controls select {
  min-width: 200px;
}

.ai-text-transform-modal .ai-text-transform-content {
  display: flex;
  gap: 1em;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.ai-text-transform-modal .ai-text-transform-column {
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
}

.ai-text-transform-modal .ai-text-transform-column label {
  display: block;
  font-weight: bold;
  margin-bottom: 0.5em;
}

.ai-text-transform-modal .ai-text-transform-textarea {
  width: 100%;
  height: 300px;
  background-color: var(--a-color-even);
  border: 1px solid var(--a-color-input-border);
  border-radius: 3px;
  padding: 0.75em;
  font-family: inherit;
  font-size: var(--a-font-size-base);
  line-height: 1.4;
  resize: vertical;
  box-sizing: border-box;
}

.ai-text-transform-modal .ai-text-transform-textarea:focus {
  background-color: var(--a-color-white);
  border-color: var(--a-color-default);
  outline: none;
}

.ai-text-transform-modal .ai-text-transform-textarea::placeholder {
  color: var(--a-color-info);
  font-style: italic;
}

.ai-text-transform-modal .ai-text-transform-textarea:disabled {
  color: var(--a-color-dark);
  cursor: wait;
}

.ai-text-transform-modal .ai-tokens-info {
  font-weight: normal;
  font-size: var(--a-font-size-md);
  color: var(--a-color-dark);
  margin-left: 0.5em;
}

.ai-text-transform-modal #text-transform-execute-btn.disabled,
.ai-text-transform-modal #text-transform-apply-btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* AI run icon for execute button */
.icon-ai-run {
  background-image: url("/assets/plugin_assets/redmine_ai/bt_text_transform-65390b4c.svg");
}

/* Fullscreen mode for ajax-modal - apply to parent dialog */
.ui-dialog:has(#ajax-modal.ai-modal-fullscreen) {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0;
  z-index: 1000;
}

.ui-dialog:has(#ajax-modal.ai-modal-fullscreen) .ui-dialog-titlebar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1001;
  border-radius: 0;
}

#ajax-modal.ai-modal-fullscreen {
  position: absolute;
  top: 2.5em;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100% !important;
  height: calc(100% - 2.5em) !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  border-radius: 0;
  overflow: auto;
}

#ajax-modal.ai-modal-fullscreen .ai-text-transform-modal {
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 1em;
  box-sizing: border-box;
}

#ajax-modal.ai-modal-fullscreen .ai-text-transform-content {
  flex: 1;
  min-height: 0;
}

#ajax-modal.ai-modal-fullscreen .ai-text-transform-column {
  display: flex;
  flex-direction: column;
}

#ajax-modal.ai-modal-fullscreen .ai-text-transform-textarea {
  flex: 1;
  height: auto;
  min-height: 300px;
}

/* Shared AI meta info (tokens, thinking, tools) */

.ai-message-meta,
.ai-wizard-meta {
  margin-top: 8px;
  font-size: var(--a-font-size-xs);
  color: var(--a-color-info);
}

.ai-thinking {
  display: block;
  margin-top: 2px;
}

.ai-thinking summary {
  cursor: pointer;
}

.ai-thinking .thinking-content {
  margin-top: 4px;
  border-left: 2px solid #ddd;
  padding-left: 8px;
}

.ai-thinking .thinking-content > :first-child {
  margin-top: 0;
}
