/* S427 Tickets — front-end */

.s427t-wrap { max-width: 760px; margin: 0 auto; }

/* Typography hardening: the host theme (Hello Elementor / Elementor global fonts) sets large
   sizes on body text and headings. Pin our own sizes, scoped to .s427t-wrap, with !important
   so theme/Elementor rules can't win. Component classes (.s427t-h, badges, pills, hints) keep
   their own sizes because they carry their own font-size declarations. */
.s427t-wrap { font-size: 15px !important; line-height: 1.5 !important; }
.s427t-wrap p,
.s427t-wrap li,
.s427t-wrap td,
.s427t-wrap th,
.s427t-wrap label,
.s427t-wrap a { font-size: 15px !important; line-height: 1.5 !important; }
.s427t-wrap h1,
.s427t-wrap h2,
.s427t-wrap h3,
.s427t-wrap h4,
.s427t-wrap .s427t-h { font-size: 20px !important; line-height: 1.3 !important; font-weight: 600; }

.s427t-h { margin: 0 0 1rem; }

.s427t-field { display: block; margin: 0 0 1rem; }
.s427t-field label { display: block; font-weight: 600; margin-bottom: .35rem; }
.s427t-field input[type=text],
.s427t-field input[type=email],
.s427t-field select,
.s427t-field textarea {
	width: 100%;
	padding: .55rem .6rem;
	border: 1px solid #ccc;
	border-radius: 6px;
	box-sizing: border-box;
	font-size: 15px;
	line-height: 1.4;
	font-family: inherit;
}
.s427t-hint { font-weight: 400; color: #777; font-size: .85em; margin-left: .4rem; }

.s427t-btn {
	display: inline-block;
	padding: .6rem 1.2rem;
	background: #1f2937;
	color: #fff;
	border: 0;
	border-radius: 6px;
	cursor: pointer;
	font-size: 15px !important;
}
a.s427t-btn { text-decoration: none; color: #fff; }
.s427t-btn:hover { background: #111827; color: #fff; }
.s427t-btn-sm { padding: .25rem .7rem; font-size: 12px !important; line-height: 1.3; }
/* "Close this ticket" — outlined red button (filled red on hover) */
.s427t-btn-close { background: #fff; color: #b91c1c; border: 1px solid #b91c1c; }
.s427t-btn-close:hover { background: #b91c1c; color: #fff; }

/* honeypot — keep out of view but not display:none (some bots skip those) */
.s427t-hp { position: absolute; left: -9999px; top: -9999px; height: 0; overflow: hidden; }

.s427t-success { padding: .7rem 1rem; background: #ecfdf5; border: 1px solid #a7f3d0; border-radius: 6px; }
.s427t-error   { padding: .7rem 1rem; background: #fef2f2; border: 1px solid #fecaca; border-radius: 6px; }

/* high-priority badge */
.s427t-badge { display: inline-block; font-size: 10px; font-weight: 700; padding: .12em .5em; border-radius: 999px; vertical-align: middle; margin-left: .5rem; }
.s427t-badge-high { background: #b91c1c; color: #fff; text-transform: uppercase; letter-spacing: .03em; }

/* customer list: View button + priority pill together */
.s427t-view-cell { white-space: nowrap; }

/* status pills */
.s427t-status { display: inline-block; font-size: .8em; padding: .15em .6em; border-radius: 999px; background: #e5e7eb; color: #374151; }
.s427t-status-open      { background: #dbeafe; color: #1e40af; }
.s427t-status-pending   { background: #fef3c7; color: #92400e; }
.s427t-status-resolved  { background: #d1fae5; color: #065f46; }

/* lists / tables */
.s427t-list { margin-bottom: 2.5rem; padding-bottom: 2rem; border-bottom: 1px solid #e5e7eb; }

/* Neutralise theme table styling (Hello Elementor adds cell borders, a grey cell tint and
   top vertical-align). Scoped to .s427t-wrap with !important so the theme/kit can't win. */
.s427t-wrap .s427t-table { width: 100% !important; border-collapse: collapse !important; background: transparent !important; margin-bottom: 0; }
.s427t-wrap .s427t-table th,
.s427t-wrap .s427t-table td {
	border: 0 !important;
	border-bottom: 1px solid #e5e7eb !important;
	background: transparent !important;
	vertical-align: middle !important;
	text-align: left !important;
	padding: 10px 8px !important;
}
.s427t-wrap .s427t-table thead th {
	border-bottom-width: 2px !important;
	font-weight: 600;
	color: #374151;
}

/* customer list pagination */
.s427t-pager { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 1rem; }
.s427t-pager .page-numbers {
	display: inline-block;
	padding: .3rem .65rem;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	text-decoration: none;
	color: #374151;
	line-height: 1.2;
}
.s427t-pager a.page-numbers:hover { background: #f3f4f6; }
.s427t-pager .page-numbers.current { background: #1f2937; color: #fff; border-color: #1f2937; }

/* file list */
.s427t-file-list { list-style: none; margin: .6rem 0 0; padding: 0; }
.s427t-file-item {
	display: flex;
	align-items: center;
	gap: .5rem;
	background: #ecfdf5;
	border: 1px solid #a7f3d0;
	border-left: 4px solid #10b981;
	border-radius: 6px;
	padding: .45rem .6rem;
	margin-bottom: .4rem;
	font-size: .9em;
}
.s427t-file-bar { display: none; }
.s427t-file-meta { flex: 1 1 auto; min-width: 0; }
.s427t-file-check { color: #059669; font-weight: 700; }
.s427t-file-name { font-weight: 600; color: #065f46; }
.s427t-file-size { color: #6b7280; }
.s427t-file-remove {
	background: none;
	border: 0;
	color: #b91c1c;
	font-size: 1.2rem;
	line-height: 1;
	cursor: pointer;
	padding: 0 .25rem;
	flex: 0 0 auto;
}
.s427t-file-remove:hover { color: #7f1d1d; }
.s427t-file-total { font-weight: 600; padding: .2rem 0; color: #444; font-size: .9em; }
.s427t-file-error { color: #b91c1c; font-size: .9em; margin: .4rem 0 0; }

/* conversation thread */
.s427t-thread { list-style: none; margin: 1.5rem 0; padding: 0; }
.s427t-msg { border: 1px solid #e5e7eb; border-radius: 8px; padding: .8rem 1rem; margin-bottom: .8rem; }
.s427t-msg-admin { background: #f8fafc; border-color: #cbd5e1; }
.s427t-msg-head { display: flex; justify-content: space-between; font-size: .85em; color: #666; margin-bottom: .4rem; }
.s427t-msg-body { white-space: normal; }
.s427t-msg-body p { margin: 0 0 .6em; }
.s427t-msg-body p:last-child { margin-bottom: 0; }
.s427t-msg-body ul { list-style: disc; margin: 0 0 .6em 1.4em; padding: 0; }
.s427t-msg-body ol { list-style: decimal; margin: 0 0 .6em 1.4em; padding: 0; }
.s427t-msg-body li { margin: 0 0 .2em; }
.s427t-msg-body a { color: #047857; text-decoration: underline; }
.s427t-attachments { margin: .6rem 0 0; padding-left: 1.1rem; font-size: .9em; }
.s427t-size { color: #888; }

.s427t-meta { margin: .3rem 0 0; }
.s427t-cat { color: #777; margin-left: .6rem; }
.s427t-back { margin-bottom: 1rem; }
