/* BeamReactor Core CSS with Modern Variables */
/* $VER: core.css [ BeamReactor skin ] v2.0 - 25.11.2025 */
/* Part of the Beam Reactor web engines by Treveur Bretaudiere 2004-2026 */

/* ========================================================================
   CSS VARIABLES - Modern theming system
   ======================================================================== */

:root {
	--key1: #424242;
	--key2: #404040;

	/* Primary colors */
	--primary-color: #FFC735;
	--primary-hover: #E6B330;
	--secondary-color: #2c3e50;

/* Couleurs de Statut à ajouter pour une cohérence maximale */
	--success-color: #00ff88;
	--success-rgb: 0, 255, 136;
	--info-color: #ffaa00;
	--info-rgb: 255, 170, 0;
	--error-color: #ff4444;   /* Similaire à threat-3 */
	--error-rgb: 255, 68, 68;


	/* Background colors */
	--body-bg-start: #262929;
	--body-bg-middle: #212121;
	--body-bg-end: #333639;
	--card-bg: #232323;
	--frame-bg: #2F3235;
	--bubble-bg: #4f4f4f;
	--sidebar-bg: #161718;
	--right-menu-bg: #262626;
	--right-menu-border: #212121;

	/* Member zone specific */
	--member-card-light: #394041;

	/* Text colors */
	--text-primary: #fff;
	--text-secondary: #DDDDDD;
	--text-muted: #888;
	--text-gray: #CCC;

	/* Link colors */
	--link-color: #FFC735;
	--link-hover: #E6B330;
	--link-visited: #F6AE00;

	/* Border & Shadow */
	--border-color: #666;
	--border-dark: #212121;
	--shadow-inset: rgba(0,0,0, 0.25);
	--shadow-default: rgba(0,0,0,0.1);

	/* UI Elements */
	--badge-bg: #e74c3c;
	--badge-glow: rgba(231, 76, 60, 0.6);
	--warning-color: #FF0000;

	/* Layout */
	--sidebar-width: 305px;
	--content-margin-left: 320px;
	--border-radius: 7px;
	--border-radius-small: 5px;
	--border-radius-tiny: 3px;

	/* Shadows */
	--shadow: 0 2px 8px rgba(0,0,0,0.1);
	--shadow-hover: 0 4px 16px rgba(0,0,0,0.15);
	--text-shadow: #777777 0 0 4px;
	--link-glow: #FFC735 0 0 2px;

	/* Monospaced fonts */
	--font-mono: 'Fira Code', 'JetBrains Mono', 'Source Code Pro',
			'IBM Plex Mono', 'Inconsolata', Menlo, Monaco, Consolas, monospace;
}

/* ========================================================================
   ORIGINAL BEAMREACTOR STYLES (preserved with variable support)
   ======================================================================== */

/* HTML */
html
{
	min-height: 100%;
}

body
{
	margin:0;
	font-family:Ropa Sans, sans-serif;
	font-size: 17pt;
	font-weight: 300;
	line-height: 1.75em;
	color: var(--text-primary);
	background: var(--body-bg-middle); /* Old browsers */
	/* IE10 Consumer Preview */
	background-image: -ms-linear-gradient(top, var(--body-bg-start) 0%, var(--body-bg-middle) 10%, var(--body-bg-end) 100%);

	/* Mozilla Firefox */
	background-image: -moz-linear-gradient(top, var(--body-bg-start) 0%, var(--body-bg-middle) 10%, var(--body-bg-end) 100%);

	/* Opera */
	background-image: -o-linear-gradient(top, var(--body-bg-start) 0%, var(--body-bg-middle) 10%, var(--body-bg-end) 100%);

	/* Webkit (Safari/Chrome 10) */
	background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, var(--body-bg-start)), color-stop(0.1, var(--body-bg-middle)), color-stop(1, var(--body-bg-end)));

	/* Webkit (Chrome 11+) */
	background-image: -webkit-linear-gradient(top, var(--body-bg-start) 0%, var(--body-bg-middle) 10%, var(--body-bg-end) 100%);

	/* W3C Markup, IE10 Release Preview */
	background-image: linear-gradient(to bottom, var(--body-bg-start) 0%, var(--body-bg-middle) 10%, var(--body-bg-end) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#262929', endColorstr='#333639',GradientType=0 ); /* IE6-9 */
	background-repeat: repeat-x;
	background-position: center top;
}

h1
{
	margin: 0 0 14px 0;
	color: var(--text-muted);
}

h2
{
	margin: 0 0 14px 0;
	color: var(--text-muted);
}


/* TABLES */

table
{
	border-spacing: 6px;
	border-collapse: separate;
}

td
{
	padding: 6px;
}

table.center
{
	margin-left:auto;
	margin-right:auto;
}

table.tzero
{
	border-spacing: 0px;
}

td.tzero
{
	padding: 0px;
}


/* Headings */

h2
{
	color: var(--text-gray);
	font-weight: 300;
}

h3.producttitle
{
	line-height: 1.0em;
}

h1, h2, h3, h4, h5, h6
{
	line-height: 1.5em;
}

div#systemlinks
{
	white-space:nowrap;
}

/* content, chapo */
.subtitle
{
	font-style:italic;
	font-family:"Verdana",Verdana,sans-serif;
}

img
{
	border: 0;
}

a
{
	color: var(--link-color);
	text-decoration: none;
}

a:hover
{
	color: var(--link-hover);
	text-decoration: none;
}

a:visited
{
	color: var(--link-visited);
	text-decoration: none;
}

/* Boutons-liens : --link-visited (0,1,1) écrasait .btn-primary (0,1,0) — exception spécificité (0,2,1) */
a.btn-primary:visited,
a.btn:visited
{
	color: #1a1a1a;
	text-decoration: none;
}

a img
{
	border: 0px;
	opacity: 1;
	filter: alpha(opacity=100);
}

a:hover img
{
	border: 0px;
	opacity: 0.9;
	filter: alpha(opacity=90);
}


div.info
{
	text-decoration: none;
	color: inherit;
	border:0;
	vertical-align:middle;
}

div.info span
{
	display: none;
}

div.info:hover
{
	background: none; /* correction d'un bug IE */
}

div.info:hover span
{
	display: inline;
	position: absolute;
	z-index: 500;
	margin:2em 0 0 1em;
	background: black;
	text-align: center;
	color: white;
	padding: 3px;
	border:0
}



a.info
{
	text-decoration: none;
	color: black;
	/*border-bottom: 1px gray dotted;*/
	border:0;
	vertical-align:middle;
}

a.info span
{
	display: none;
}

a.info:hover,a.info:focus,a.info:active
{
	background: none; /* correction d'un bug IE */
}

a.info:hover span,a.info:focus span,a.info:active span
{
	display: inline;
	position: absolute;
	z-index: 500;
	margin:2em 0 0 1em;
	background: black;
	text-align: center;
	color: white;
	padding: 3px;
	border:0
}

.text_warning
{
	color: var(--warning-color);
}

label {
	display: inline-block;
	cursor: pointer;
	position: relative;
	padding-left: 25px;
	margin-right: 15px;
	font-size: 13px;
}
.wrapper {
	width: 500px;
	margin: 50px auto;
}

.break-word
{
	word-break: break-all;
}

/* BOF CSS POPUP */
#menu
{
	top:0;
	right:0;
	bottom: 0;
	left: 0;
	width: 50%;
	height: 50%;
	z-index:0;
}
#menu a.p1, #menu a.p1:visited {display:block; width:72px; height:72px; text-decoration:none; top: 0; right: 0; bottom: 0; left: 0; border: 0;}
#menu a img {border:0;}
#menu a.p1:hover {text-decoration:none;}
#menu a .large
{
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 50%;
  height: 50%;
  margin: auto;
  color: white;
  width: 0px;
  height: 0px;
}
#menu a.p1:hover .large
{
 display:block;
 position:absolute;
 width:320px;
 height:320px;
 left:50%;
 top:50%;
 margin-left:-160px;
 margin-top:-160px;
 z-index: 0;
 border: 0px;
}
/* EOF CSS POPUP */

div
{
	display:block;
}


div.fv
{
	font-family: Tahoma, sans-serif;
	font-size: xx-small;
	color: black;
}
div.fv a
{
	font-family: Tahoma, sans-serif;
	font-size: 10pt;
	color: black;
	text-decoration : none;
	padding-bottom:5px;
}
div.fs
{
	font-family: Tahoma, sans-serif;
	font-size: xx-small;
	color: black;
}
div.fs a
{
	font-family: Tahoma, sans-serif;
	font-size: xx-small;
	color: black;
	text-decoration : none;
}
div.fs a:hover
{
	text-decoration:underline;
}


/* LAYOUT */


div#container
{
	/*overflow:hidden*/
}

div#title
{
	top:0;
	left:0;
	width: var(--sidebar-width);
	height:100%;
	color: var(--text-primary);
	background: var(--sidebar-bg);
	box-shadow:-.25em 0 .25em 0 var(--shadow-default) inset;
	text-align:right;left:0;top:0;
	float:left;
	height: auto;
	min-height:100%;
	position:fixed;
	z-index: 9999;
}

#title img
{
	padding: 10px 28px 0px 0px;
}

.middle
{
}

#bubble
{
	background-color: var(--bubble-bg);
	border-radius: var(--border-radius-small);
	-webkit-border-radius: var(--border-radius-small);
	-moz-border-radius: var(--border-radius-small);
	-o-border-radius: var(--border-radius-small);
	-khtml-border-radius: var(--border-radius-small);
	*margin-top: -5px;
	padding: 8px; margin: 8px;
}


div.baseframe
{
	margin-top: 6px;
}

article.frame
{
	/* position:absolute _dom thing; */
	padding: 40px;
	background-color: var(--card-bg);
	/* background-image: url(Carbone_Alveolaire_clair.png); */
	background-repeat: repeat;
	background-position: left top;
	background-attachment:fixed;
	border-radius: var(--border-radius);
	-webkit-border-radius: var(--border-radius);
	-moz-border-radius: var(--border-radius);
	-o-border-radius: var(--border-radius);
	-khtml-border-radius: var(--border-radius);
	color: var(--text-primary);
}

div.frameTitle
{
	letter-spacing: 1px;
	padding: 6px;
	font:bold 18px/18px 'Lucida Grande',Lucida Grande,Helvetica,Arial,sans-serif;
	color: var(--text-secondary);
	text-shadow: var(--text-shadow);
	filter: glow(color=#777777,strength=2);
	padding: 26px 0px 0px 4px;
	word-break: break-all;
}

div.frameLine {
	-moz-border-radius: var(--border-radius-tiny);
	background-color: var(--frame-bg);
	margin: 4px;
	padding: 14px 24px 14px 24px;
	box-shadow: inset 0 0 8px var(--shadow-inset);
	-moz-box-shadow: inset 0 0 8px var(--shadow-inset);
	-webkit-box-shadow: inset 0 0 8px var(--shadow-inset);
	font-size: 0.8em !important;
	/*overflow: auto;*/
}

/* Images alignées DANS frameLine */
div.frameLine img.alignleft {
	float: left;
	margin: 0 20px 15px 0;
	clear: left;
	font-size: initial !important; /* Annule l'héritage */
}

div.frameLine img.alignright {
	float: right;
	margin: 0 0 15px 20px;
	clear: right;
	font-size: initial !important;
}

div.frameLine img.aligncenter {
	display: block;
	margin: 15px auto;
	clear: both;
	font-size: initial !important;
}

ol, ul
{
	list-style: square inside;
}

ul.nobullet
{
	list-style: outside none none;
}

#navigator ul li a {
	display: block;
	padding: 0.5em 1.5em;
	color: rgba(255, 255, 255, 0.5);
	text-decoration: none;
	outline: 0px none;
	border: 0px none;
	transition: none 0s ease 0s;
}

.main-nav,
.menu-nav ul
{
	list-style-type: none;
	padding:10px;
	margin:0;
}

.menu-nav li
{
	padding: 5px 5px;
	border-radius: var(--border-radius-small);
}

.menuitem
{
	padding: 4px; margin: 4px;
}

.menuitem a:hover
{
	text-shadow: var(--link-glow);
	filter: glow(color=#FFC735,strength=1);
}

.random_product
{
	text-align: center;
	text-decoration: none !important;
	width:130px;
	margin-left:auto;
	margin-right:auto;
	font: bold 9px Verdana, sans-serif; color: gray;
}

.random_product a
{
	text-decoration: none;
	font: bold 9px Verdana, sans-serif;
	color: gray;
}

.random_product a:hover
{
	text-decoration: none;
	font: bold 9px Verdana, sans-serif;
	color: #696969;
	text-shadow: #696969 0 0 2px;
	filter: glow(color=#696969,strength=1);
}

.random_product a img
{
	border:0;
}

div#leftMenu
{
	padding: 8px;
	border-radius: var(--border-radius-small);
	-webkit-border-radius: var(--border-radius-small);
	-moz-border-radius: var(--border-radius-small);
	-o-border-radius: var(--border-radius-small);
	-khtml-border-radius: var(--border-radius-small);
	*margin-top: -5px;
	border:1px solid var(--border-color);
	float:left;
}

div#rightMenu
{
	background: var(--right-menu-bg);
	border-radius: var(--border-radius-small);
	-webkit-border-radius: var(--border-radius-small);
	-moz-border-radius: var(--border-radius-small);
	-o-border-radius: var(--border-radius-small);
	-khtml-border-radius: var(--border-radius-small);
	*margin-top: -5px;
	border:3px solid var(--right-menu-border);
	padding: 8px;
	float:right;
	width:180px;
	margin-top: 4px;
}

span
{
}

#header
{
	line-height: 1.42857;
}


/* BR Critical */
td.full
{
	width: 100%;
}


.twofa-enabled   { background:rgba(0,255,136,0.12); color:var(--success-color); border:1px solid var(--success-color); }
.twofa-disabled  { background:rgba(255,68,68,0.12);   color:var(--warning-color);  border:1px solid var(--warning-color);  }


/* ========================================================================
   AEGIS IA - Threat Level Badges (ulev.php 2025) // TODO2025, move to plugin
   ======================================================================== */
.threat-badge {
	display: inline-block;
	min-width: 72px;
	padding: 6px 10px;
	border-radius: var(--border-radius-tiny);
	font-family: 'Ropa Sans', monospace;
	font-weight: bold;
	font-size: 0.85em;
	text-align: center;
	box-shadow: 0 0 12px rgba(0, 212, 255, 0.15);
	transition: all 0.3s ease;
}

.threat-0  { background: #003322; color: var(--success-color); border: 1px solid var(--success-color); }   /* OK */
.threat-1  { background: #001122; color: #88ccff; border: 1px solid var(--info-color); }
.threat-2  { background: #221100; color: #ffdd88; border: 1px solid #ffa500; }
.threat-3  { background: #330000; color: #ff8888; border: 1px solid var(--error-color); }
.threat-4  { background: #440000; color: #ffaaaa; border: 1px solid #C60624; }
.threat-5  { background: #330000; color: #ff6666; border: 2px solid #ff0044; box-shadow: 0 0 16px rgba(255,0,68,0.4); }
.threat-6  { background: #000;	 color: #ff0044; border: 2px solid #ff0044; box-shadow: 0 0 20px rgba(255,0,68,0.6); animation: pulse 2s infinite; }

/* Ligne entière en alerte */
.row-threat-high {
	position: relative;
	background: rgba(198, 6, 36, 0.08) !important;
}
.row-threat-high::before {
	content: '';
	position: absolute;
	left: 0; top: 0; bottom: 0;
	width: 6px;
	background: var(--warning-color);
	box-shadow: 0 0 12px var(--badge-glow);
}

/* Pulse discret pour les comptes bloqués */
@keyframes pulse {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.8; }
}

.twofa-section {
	padding:30px;
	background:var(--card-bg);
	border:1px solid var(--border-color);
	border-radius:var(--border-radius);
	box-shadow:var(--shadow);
	margin:30px 0;
}
.twofa-header {
	display:flex;
	align-items:center;
	gap:12px;
	margin-bottom:20px;
	color:var(--primary-color);
	font-size:1.3em;
}
.twofa-status {
	padding:5px 12px;
	border-radius:var(--border-radius-tiny);
	font-weight:bold;
	font-size:0.8em;
}
.qr-code {
	text-align:center;
	padding:20px;
	background:var(--frame-bg);
	border-radius:var(--border-radius-small);
	margin:20px 0;
	box-shadow:inset 0 0 15px var(--shadow-inset);
}
.qr-code img {
	max-width:220px;
	border:6px solid var(--card-bg);
	border-radius:10px;
	box-shadow:0 0 20px var(--primary-glow);
}
.backup-codes {
	background:var(--frame-bg);
	padding:18px;
	border-radius:var(--border-radius-small);
	font-family:monospace;
	font-size:1.1em;
	text-align:center;
	margin:20px 0;
	border:1px dashed var(--border-cyan);
}
.backup-codes code {
	background:#000;
	color:var(--primary-color);
	padding:4px 8px;
	border-radius:4px;
	letter-spacing:3px;
}
.twofa-actions {
	display:flex;
	gap:12px;
	flex-wrap:wrap;
	justify-content:center;
	margin-top:25px;
}
.btn-2fa {
	padding:11px 28px;
	border-radius:var(--border-radius-small);
	font-weight:bold;
	cursor:pointer;
	transition:all .3s ease;
	border:none;
}
.btn-enable  { background:var(--primary-color); color:var(--body-bg-start); }
.btn-disable { background:#220000; color:var(--warning-color); border:2px solid var(--warning-color); }
.btn-regen   { background:var(--frame-bg); color:var(--primary-color); border:2px solid var(--primary-color); }
.btn-2fa:hover {
	transform:translateY(-3px);
	box-shadow:0 0 20px var(--primary-glow);
}

/* ========================================================================
   RESPONSIVE DESIGN - Mobile & Tablet
   Fixed version without CSS variable overrides
   ======================================================================== */

/* Tablet (≤ 1024px) */
@media (max-width: 1024px) {
	body {
		font-size: 15pt;
	}

	div#title {
		width: 250px;
	}

	div#middle {
		margin-left: 265px;
	}

	div#title img {
		width: 220px;
		height: auto;
	}
}

/* Mobile Large (≤ 768px) */
@media (max-width: 768px) {
	body {
		font-size: 14pt;
		line-height: 1.5em;
	}

	/* Sidebar becomes horizontal on mobile */
	div#title {
		position: static !important;
		width: 100% !important;
		height: auto !important;
		min-height: auto !important;
		float: none !important;
		left: auto !important;
		top: auto !important;
		box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	}

	div#title img {
		display: block;
		margin: 10px auto;
		max-width: 200px;
		height: auto;
		padding: 5px;
	}

	/* Main content full width */
	div#middle {
		margin: 10px !important;
		margin-left: 10px !important;
		margin-top: 10px !important;
		padding: 10px;
		padding-right: 10px;
		padding-bottom: 30px;
	}

	/* Navigator horizontal */
	#navigator ul {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 5px;
		padding: 10px 5px;
	}

	#navigator ul li {
		display: inline-block;
		margin: 0;
	}

	#navigator ul li a {
		padding: 8px 12px;
		font-size: 0.9em;
	}

	/* Frames adapt */
	div.frame,
	article.frame {
		margin: 4px 0;
	}

	div.frameLine {
		padding: 10px;
		font-size: 0.9em !important;
	}

	/* Tables scroll horizontally */
	table {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
		-webkit-overflow-scrolling: touch;
	}

	/* Right menu full width on mobile */
	div#rightMenu {
		width: 100% !important;
		float: none !important;
		margin: 10px 0;
	}

	/* Left menu full width */
	div#leftMenu {
		width: 100% !important;
		float: none !important;
		margin: 10px 0;
	}
}

/* Mobile Small (≤ 480px) */
@media (max-width: 480px) {
	body {
		font-size: 13pt;
	}

	div#title img {
		max-width: 180px;
	}

	div#middle {
		margin: 5px !important;
		padding: 5px;
	}

	div.frameTitle {
		font-size: 16px !important;
		padding: 4px;
	}

	div.frameLine {
		padding: 8px !important;
		font-size: 0.85em !important;
	}

	#navigator ul li a {
		padding: 6px 10px;
		font-size: 0.85em;
	}

	/* Buttons stack vertically */
	button,
	input[type="submit"],
	input[type="button"],
	.btn {
		display: block;
		width: 100%;
		margin: 5px 0;
	}

	/* 2FA actions stack */
	.twofa-actions {
		flex-direction: column;
	}

	.btn-2fa {
		width: 100%;
	}

	/* Images responsive */
	img {
		max-width: 100%;
		height: auto;
	}
}

/* ========================================================================
   SHOP FOOTER — Skin-level component (css1_shop/footer.php)
   Also provides .tracking-cta and .tos-doc for all shop data pages
   ======================================================================== */

/* Order Tracking CTA + Legal page contact boxes */
.tracking-cta {
	background: linear-gradient(135deg, rgba(255, 199, 53, 0.1) 0%, rgba(255, 170, 0, 0.1) 100%);
	border: 2px solid #FFC735;
	border-radius: 8px;
	padding: 40px;
	text-align: center;
	margin: 60px 0;
}

.tracking-cta h3 {
	color: #FFC735;
	margin: 0 0 15px 0;
	font-size: 28px;
}

.tracking-cta p {
	color: var(--text-secondary, #ddd);
	margin-bottom: 20px;
}

/* Legal document wrapper (.tos-doc) */
.tos-doc {
	max-width: 860px;
	margin: 0 auto;
	line-height: 1.8;
	font-size: 0.82em;
}

.tos-doc h1 {
	color: var(--primary-color);
	font-size: 2em;
	margin-bottom: 6px;
}

.tos-doc h2 {
	color: var(--primary-color);
	font-size: 1.2em;
	margin-top: 2em;
	border-bottom: 1px solid rgba(255, 199, 53, 0.25);
	padding-bottom: 4px;
}

.tos-doc ul {
	padding-left: 1.5em;
}

.tos-doc ul li {
	margin-bottom: 8px;
}

/* Shop Footer */
.shop-footer {
	background: rgba(0, 0, 0, 0.3);
	border-top: 2px solid #424242;
	margin-top: 80px;
	padding: 60px 0 30px 0;
}

.footer-grid {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
	gap: 40px;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 20px;
}

.footer-col h4 {
	color: #FFC735;
	margin: 0 0 20px 0;
	font-size: 18px;
}

.footer-col p {
	color: var(--text-secondary, #ddd);
	font-size: 14px;
	line-height: 1.6;
}

.footer-col ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.footer-col ul li {
	margin-bottom: 12px;
}

.footer-col ul li a {
	color: #aaa;
	text-decoration: none;
	transition: color 0.2s;
}

.footer-col ul li a:hover {
	color: #FFC735;
}

.newsletter-form {
	display: flex;
	gap: 10px;
	margin-top: 15px;
}

.newsletter-form input {
	flex: 1;
	padding: 12px;
	background: rgba(255,255,255,0.1);
	border: 1px solid #666;
	border-radius: 4px;
	color: #fff;
}

.newsletter-form button {
	padding: 12px 24px;
	background: linear-gradient(135deg, #FFC735 0%, #E6B330 100%);
	color: #1a1a1a;
	border: none;
	border-radius: 4px;
	font-weight: bold;
	cursor: pointer;
}

.footer-logo {
	width: 200px;
	margin-bottom: 15px;
}

.footer-bottom {
	text-align: center;
	padding: 20px;
	margin-top: 40px;
	border-top: 1px solid rgba(255,255,255,0.1);
	color: #888;
	font-size: 14px;
}

@media (max-width: 1024px) {
	.footer-grid {
		grid-template-columns: 1fr 1fr 1fr;
	}
}

@media (max-width: 768px) {
	.footer-grid {
		grid-template-columns: 1fr;
	}
}