/**
 * BeamReactor Bot Plugins CSS
 * Shared styles for botlist.php and botsniffer.php
 *
 * @package	Beamreactor\Plugins
 * @author	 Treveur Bretaudière
 * @copyright  2004-2026 Treveur Bretaudière
 * @version	2.0.0
 * @date	   2026-01-18
 */

/* Tables */
.botlist-table,
.botsniffer-table
{
	border-collapse: separate;
	border-spacing: 0;
	background: var(--card-bg);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
}

.botlist-table th,
.botsniffer-table th
{
	background: var(--frame-bg);
	color: var(--text-secondary);
	padding: 10px;
	text-align: left;
	border-bottom: 1px solid var(--border-color);
}

.botlist-row,
.botsniffer-row
{
	border-bottom: 1px solid var(--border-dark);
}

.botlist-row:hover,
.botsniffer-row:hover
{
	background: var(--frame-bg);
}

.botlist-row td,
.botsniffer-row td
{
	padding: 8px 10px;
	vertical-align: middle;
}

/* Category header */
.botlist-cat-header td
{
	background: var(--frame-bg);
	color: var(--primary-color);
	font-weight: bold;
	padding: 12px 10px;
	border-top: 2px solid var(--border-color);
}

/* Trigger/code display */
.botlist-trigger code
{
	background: var(--card-bg);
	border: 1px solid var(--border-color);
	padding: 2px 6px;
	border-radius: var(--border-radius-tiny);
	font-family: var(--font-mono);
	font-size: 0.9em;
}

/* Risk bar - modern gradient */
.botlist-risk-bar,
.botsniffer-risk-bar
{
	position: relative;
	width: 110px;
	height: 28px;
	background: var(--card-bg);
	border-radius: 14px;
	overflow: hidden;
	display: inline-block;
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.6), 0 2px 4px rgba(0, 0, 0, 0.4);
}

.botlist-risk-fill,
.botsniffer-risk-fill
{
	height: 100%;
	background: linear-gradient(90deg, var(--success-color) 0%, #f97316 50%, var(--error-color) 100%);
	border-radius: 14px;
	transition: width 0.4s ease;
}

.botlist-risk-value,
.botsniffer-risk-value
{
	position: absolute;
	inset: 0;
	line-height: 28px;
	text-align: center;
	color: var(--text-primary);
	font-weight: bold;
	font-size: 0.95em;
	text-shadow: 1px 1px 3px black;
}

/* Category badges */
.botlist-cat-badge,
.botsniffer-cat-badge
{
	display: inline-block;
	padding: 4px 10px;
	border-radius: var(--border-radius-tiny);
	font-size: 0.85em;
	font-weight: bold;
	white-space: nowrap;
}

.cat-search_engine
{
	background: rgba(30, 144, 255, 0.15);
	color: var(--info-color);
	border: 1px solid var(--info-color);
}

.cat-ai_crawler
{
	background: rgba(255, 165, 0, 0.15);
	color: #ffa500;
	border: 1px solid #ffa500;
}

.cat-social_media
{
	background: rgba(138, 43, 226, 0.15);
	color: #ba68c8;
	border: 1px solid #ba68c8;
}

.cat-monitoring
{
	background: rgba(0, 255, 136, 0.1);
	color: var(--success-color);
	border: 1px solid var(--success-color);
}

.cat-archiver
{
	background: rgba(100, 100, 100, 0.15);
	color: var(--text-muted);
	border: 1px solid var(--text-muted);
}

.cat-feed_reader
{
	background: rgba(0, 191, 255, 0.15);
	color: #00bfff;
	border: 1px solid #00bfff;
}

.cat-seo_tool
{
	background: rgba(255, 215, 0, 0.15);
	color: var(--primary-color);
	border: 1px solid var(--primary-color);
}

.cat-malicious
{
	background: rgba(255, 0, 0, 0.15);
	color: var(--error-color);
	border: 1px solid var(--error-color);
}

.cat-unknown
{
	background: rgba(128, 128, 128, 0.15);
	color: var(--text-muted);
	border: 1px solid var(--border-color);
}

/* Unknown bot warning */
.botsniffer-unknown
{
	color: var(--error-color);
	font-weight: bold;
}

/* Filter links */
.botlist-filters
{
	margin: 15px 0;
}

.botlist-filter-link
{
	display: inline-block;
	margin: 3px;
	padding: 5px 12px;
	background: var(--frame-bg);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius-small);
	font-size: 0.9em;
}

.botlist-filter-link:hover
{
	border-color: var(--primary-color);
	color: var(--primary-color);
}

/* Alerts */
.botsniffer-alert
{
	padding: 15px;
	margin: 15px 0;
	border-radius: var(--border-radius);
}

.botsniffer-success
{
	background: var(--card-bg);
	border: 1px solid var(--success-color);
	color: var(--success-color);
}

.botsniffer-error
{
	background: var(--card-bg);
	border: 1px solid var(--error-color);
	color: var(--error-color);
}

/* Control panel */
.botsniffer-panel
{
	background: var(--frame-bg);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
	padding: 15px;
	margin: 15px 0;
}

.botsniffer-controls td
{
	padding: 8px;
}

/* Stats summary */
.botsniffer-stats
{
	background: var(--frame-bg);
	border: 1px solid var(--border-color);
	border-radius: var(--border-radius);
	padding: 15px;
	margin: 15px 0;
}

.botsniffer-stats p
{
	margin: 5px 0;
}

/* Pagination */
.botsniffer-pagination
{
	margin: 20px 0;
	text-align: center;
}

.botsniffer-pagination select
{
	margin: 0 10px;
	padding: 5px 10px;
}

/* Form */
.botsniffer-form td
{
	padding: 8px;
}

.botsniffer-form .textfield
{
	width: 300px;
}

/* Small text for user agent */
.botsniffer-ua small
{
	color: var(--text-muted);
	font-family: var(--font-mono);
	font-size: 0.8em;
	word-break: break-all;
}
