/* AI Reply — badge di stato sotto il post che ha innescato il bot */

/* --- Stato della risposta sotto il messaggio ----------------------- */

/*
 * Riquadro a tutta larghezza, staccato dal messaggio.
 *
 * Prima era una pastiglia attaccata all'ultima riga del post, e si confondeva
 * con il testo dell'utente: chi legge non capiva se fosse parte del messaggio
 * o un'informazione del forum. Un riquadro con un margine sopra e un bordo
 * proprio si legge come cio' che e': una nota di servizio.
 */
.aireply-status {
	display: flex;
	align-items: center;
	gap: .7em;
	width: 100%;
	box-sizing: border-box;
	margin: 1.1em 0 .3em;
	padding: .6em .9em;
	border: 1px solid rgba(0, 0, 0, .12);
	border-left: 3px solid currentColor;
	border-radius: 3px;
	background: rgba(0, 0, 0, .02);
	font-size: .9em;
	line-height: 1.4;
}

/*
 * L'indicatore ha due forme.
 *
 * In attesa e in lavorazione e' un anello che ruota: e' l'unico modo per far
 * capire a colpo d'occhio che qualcosa sta accadendo davvero e che non vale la
 * pena ricaricare la pagina. A esito raggiunto diventa un disco fermo, perche'
 * un'animazione che continua dopo la fine del lavoro e' una bugia.
 */
.aireply-status-dot {
	flex: none;
	width: 1.05em;
	height: 1.05em;
	border-radius: 50%;
	background: currentColor;
}

.aireply-status-queued .aireply-status-dot,
.aireply-status-running .aireply-status-dot {
	background: none;
	border: 2px solid currentColor;
	border-top-color: transparent;
	border-right-color: transparent;
	animation: aireply-spin 900ms linear infinite;
}

/* Il testo pulsa appena: da solo l'anello puo' sfuggire su schermi piccoli. */
.aireply-status-queued .aireply-status-text,
.aireply-status-running .aireply-status-text {
	animation: aireply-fade 1.8s ease-in-out infinite;
}

.aireply-status-queued,
.aireply-status-running	{ color: #1f6fb2; }
.aireply-status-done	{ color: #2a7a3f; }
.aireply-status-failed	{ color: #a03030; }
.aireply-status-skipped	{ color: #777; }

.aireply-status a {
	color: inherit;
	text-decoration: underline;
}

@keyframes aireply-spin {
	to { transform: rotate(360deg); }
}

@keyframes aireply-fade {
	0%, 100%	{ opacity: 1; }
	50%			{ opacity: .55; }
}

/*
 * Chi ha chiesto al sistema operativo di ridurre le animazioni non deve
 * vedersele comunque: l'anello resta, semplicemente non gira.
 */
@media (prefers-reduced-motion: reduce) {
	.aireply-status-dot,
	.aireply-status-text {
		animation: none;
	}
}


/* --- Guida contestuale nell'ACP ---------------------------------- */

.aireply-feedback {
	margin: .6em 0;
	padding: .6em .9em;
	border-left: 3px solid #999;
	border-radius: 3px;
	background: rgba(0, 0, 0, .03);
}

.aireply-feedback.aireply-success	{ border-left-color: #2a7a3f; }
.aireply-feedback.aireply-error		{ border-left-color: #a03030; }
.aireply-feedback.aireply-info		{ border-left-color: #2b6cb0; }

.aireply-guide {
	margin: .8em 0;
	padding: 1em 1.2em;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 4px;
	background: rgba(0, 0, 0, .02);
}

.aireply-guide h3 { margin: 0 0 .4em; font-size: 1.1em; }
.aireply-guide p  { margin: .5em 0; }

.aireply-tag {
	display: inline-block;
	padding: .1em .5em;
	border-radius: 1em;
	font-size: .75em;
	font-weight: normal;
	background: #2a7a3f;
	color: #fff;
	vertical-align: middle;
}

.aireply-note {
	padding: .5em .8em;
	border-left: 3px solid #999;
	border-radius: 3px;
	background: rgba(0, 0, 0, .03);
}

.aireply-note.aireply-warning	{ border-left-color: #b8860b; }
.aireply-note.aireply-error		{ border-left-color: #a03030; }
.aireply-note.aireply-info		{ border-left-color: #2b6cb0; }

.aireply-error { color: #a03030; }

.aireply-langhint {
	font-size: .9em;
	opacity: .8;
}

/* --- Tabelle ACP -------------------------------------------------- */

.aireply-hint { font-size: .85em; opacity: .7; }

.aireply-category td { background: rgba(0, 0, 0, .05); }

.aireply-triggers label,
.aireply-limits label {
	display: block;
	font-size: .9em;
	margin: .15em 0;
}

.aireply-limits input { width: 5.5em; }

.aireply-badge {
	display: inline-block;
	padding: .1em .6em;
	border-radius: 1em;
	font-size: .85em;
	background: rgba(0, 0, 0, .06);
}

.aireply-pre {
	max-height: 28em;
	overflow: auto;
	padding: .8em;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 3px;
	background: rgba(0, 0, 0, .03);
	font-family: monospace;
	font-size: .85em;
	white-space: pre-wrap;
	word-break: break-word;
}

/* --- Pulsanti di riempimento rapido ------------------------------- */

.aireply-presets {
	margin-top: .4em;
	font-size: .9em;
}

.aireply-presets span {
	margin-right: .4em;
	opacity: .75;
}

.aireply-presets input { margin-right: .3em; }

/* Il campo endpoint è un'opzione avanzata: si smorza per non farla
   sembrare un campo obbligatorio da compilare. */
.aireply-advanced { opacity: .75; }
.aireply-advanced:focus-within { opacity: 1; }

/* --- Selezione multipla dei forum --------------------------------- */

#bulk_forums option {
	padding: .15em .3em;
	font-family: monospace;
	white-space: pre;
}

#bulk_forums option.aireply-assigned {
	font-weight: bold;
}

/* Evidenzia il campo dove l'admin deve intervenire dopo un blocco. */
.aireply-highlight {
	outline: 2px solid #b8860b;
	outline-offset: 1px;
	background: #fffbe6;
}

.aireply-diag {
	font-family: monospace;
	font-size: .85em;
	opacity: .65;
}

/* Riga della tabella forum senza bot assegnato: i controlli non possono
   essere salvati, quindi si smorzano invece di fingersi attivi. */
.aireply-row-inactive td { opacity: .5; }
.aireply-row-inactive td:first-child,
.aireply-row-inactive td:nth-child(2) { opacity: 1; }

.aireply-nobot-hint { font-style: italic; }

/* --- Tabella forum a due livelli ---------------------------------- */

.aireply-forumrow td { border-top: 2px solid rgba(0, 0, 0, .1); }
.aireply-botrow td   { padding-top: .2em; padding-bottom: .2em; }
.aireply-botrow td:nth-child(2) { padding-left: 1.5em; }

/* --- Barra dei bot sopra l'editor --------------------------------- */

.aireply-botbar {
	margin: 0 0 .6em;
	padding: .5em .8em;
	border-left: 3px solid rgba(0, 0, 0, .15);
	border-radius: 3px;
	background: rgba(0, 0, 0, .03);
	font-size: .9em;
}

.aireply-botbar-label {
	margin-right: .5em;
	opacity: .8;
}

.aireply-botpick {
	margin: .15em .2em;
	cursor: pointer;
}

/* --- Costruttore di personalità ----------------------------------- */

.aireply-builder {
	margin-top: .6em;
	padding: .7em .9em;
	border: 1px solid rgba(0, 0, 0, .12);
	border-radius: 4px;
	background: rgba(0, 0, 0, .02);
	font-size: .9em;
}

.aireply-builder-intro {
	margin: 0 0 .6em;
	opacity: .85;
}

.aireply-builder-row {
	margin: .4em 0;
}

.aireply-builder-row label {
	display: inline-block;
	margin-right: 1em;
	white-space: nowrap;
}

.aireply-persona {
	max-width: 22em;
	opacity: .85;
}
