/*
Theme Name: MaximusControle
Theme URI: https://aurelianorossi.com.br
Author: Aureliano Rossi
Author URI: https://aurelianorossi.com.br
Description: Sistema de controle de entrada e saída de pessoas (nome, documento CPF/RG, placa do veículo e destino). Cadastro de operadores, login e todos os registros são feitos direto no front-end do site, sem precisar do painel administrativo do WordPress. Tema em preto e branco com visual de central de monitoramento/segurança.
Version: 1.0.0
Requires at least: 5.8
Requires PHP: 7.4
Text Domain: maximuscontrole
*/

/* =========================================================
   MAXIMUSCONTROLE — tema "central de monitoramento"
   Paleta: preto e branco
   ========================================================= */

:root{
	--ac-bg: #0b0b0c;
	--ac-panel: #131315;
	--ac-panel-2: #18181b;
	--ac-border: #2a2a2d;
	--ac-border-soft: #202023;
	--ac-white: #f5f5f3;
	--ac-white-solid: #ffffff;
	--ac-gray: #9a9a9e;
	--ac-gray-dim: #6c6c70;
	--ac-mono: 'JetBrains Mono', 'Courier New', monospace;
	--ac-sans: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	--ac-radius: 2px;
}

.ac-panel, .ac-wrap{
	color: var(--ac-white);
	font-family: var(--ac-sans);
	box-sizing: border-box;
}
.ac-panel *, .ac-wrap *{ box-sizing: border-box; }

.ac-panel{
	background:
		linear-gradient(var(--ac-bg), var(--ac-bg)),
		repeating-linear-gradient(0deg, rgba(255,255,255,0.028) 0px, rgba(255,255,255,0.028) 1px, transparent 1px, transparent 34px),
		repeating-linear-gradient(90deg, rgba(255,255,255,0.028) 0px, rgba(255,255,255,0.028) 1px, transparent 1px, transparent 34px);
	background-blend-mode: normal;
	padding-bottom: 40px;
	border: 1px solid var(--ac-border);
}

.ac-wrap{
	max-width: 1080px;
	margin: 0 auto;
	padding: 28px 20px;
}

/* ---------- Barra superior ---------- */
.ac-topbar{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	padding: 16px 24px;
	border-bottom: 1px solid var(--ac-border);
	background: rgba(255,255,255,0.02);
	flex-wrap: wrap;
}
.ac-topbar-brand{ display:flex; align-items:center; gap:10px; }
.ac-brand-name{
	font-family: var(--ac-mono);
	font-size: 15px;
	letter-spacing: 2px;
	color: var(--ac-gray);
}
.ac-brand-name strong{ color: var(--ac-white-solid); font-weight: 700; }

.ac-pulse{
	width: 9px; height: 9px; border-radius: 50%;
	background: var(--ac-white-solid);
	box-shadow: 0 0 0 0 rgba(255,255,255,0.55);
	animation: ac-pulse-anim 2.2s infinite;
	flex-shrink: 0;
}
@keyframes ac-pulse-anim{
	0%   { box-shadow: 0 0 0 0 rgba(255,255,255,0.45); }
	70%  { box-shadow: 0 0 0 8px rgba(255,255,255,0); }
	100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
}
@media (prefers-reduced-motion: reduce){
	.ac-pulse{ animation: none; }
}

.ac-topbar-user{ display:flex; align-items:center; gap:14px; }
.ac-topbar-op{
	font-family: var(--ac-mono);
	font-size: 12px;
	letter-spacing: 0.5px;
	color: var(--ac-gray);
}
.ac-topbar-op strong{ color: var(--ac-white-solid); }
.ac-status-off{
	font-family: var(--ac-mono);
	font-size: 11px;
	letter-spacing: 1.5px;
	color: var(--ac-gray-dim);
	border: 1px solid var(--ac-border);
	padding: 5px 10px;
}

/* ---------- Mensagens ---------- */
.ac-alert{
	font-family: var(--ac-mono);
	font-size: 13px;
	padding: 12px 16px;
	border: 1px solid var(--ac-border);
	margin-bottom: 20px;
	letter-spacing: 0.3px;
}
.ac-alert-ok{ border-color: var(--ac-white-solid); color: var(--ac-white-solid); }
.ac-alert-erro{ border-color: var(--ac-gray-dim); color: var(--ac-gray); border-style: dashed; }
.ac-info{ font-family: var(--ac-mono); font-size: 13px; color: var(--ac-gray); }

/* ---------- Cards ---------- */
.ac-grid-2{
	display:grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
}
@media (max-width: 760px){
	.ac-grid-2{ grid-template-columns: 1fr; }
}

.ac-card{
	position: relative;
	background: var(--ac-panel);
	border: 1px solid var(--ac-border);
	padding: 26px 26px 30px;
	margin-bottom: 20px;
}
.ac-card::before, .ac-card::after{
	content:"";
	position:absolute;
	width:10px; height:10px;
	border-top: 1px solid var(--ac-white-solid);
	border-left: 1px solid var(--ac-white-solid);
	top:-1px; left:-1px;
}
.ac-card::after{
	left:auto; right:-1px; top:auto; bottom:-1px;
	border-top:none; border-left:none;
	border-bottom: 1px solid var(--ac-white-solid);
	border-right: 1px solid var(--ac-white-solid);
}
.ac-card-narrow{ max-width: 460px; margin-left:auto; margin-right:auto; }
.ac-card-full{ max-width: 100%; }

.ac-card-header{ margin-bottom: 20px; }
.ac-card-header-split{
	display:flex; align-items:flex-end; justify-content:space-between; flex-wrap: wrap; gap: 14px;
}
.ac-eyebrow{
	display:block;
	font-family: var(--ac-mono);
	font-size: 11px;
	letter-spacing: 2.5px;
	color: var(--ac-gray-dim);
	margin-bottom: 6px;
}
.ac-card-header h2{
	font-family: var(--ac-sans);
	font-weight: 700;
	font-size: 22px;
	margin: 0;
	color: var(--ac-white-solid);
}

.ac-stat{ text-align:right; font-family: var(--ac-mono); }
.ac-stat-num{ display:block; font-size: 30px; font-weight:700; color: var(--ac-white-solid); line-height:1; }
.ac-stat-label{ display:block; font-size: 10px; letter-spacing: 1.5px; color: var(--ac-gray-dim); margin-top:4px; }

.ac-header-actions{ display:flex; align-items:center; gap:16px; flex-wrap: wrap; }

.ac-hint{
	font-family: var(--ac-mono);
	font-size: 12px;
	color: var(--ac-gray-dim);
	margin: -6px 0 18px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--ac-border-soft);
}
.ac-hint a{ color: var(--ac-gray); text-decoration: underline; }
.ac-hint a:hover{ color: var(--ac-white-solid); }
.ac-hint-no-border{ border-bottom: none; margin: -6px 0 16px; padding-bottom: 0; }

.ac-form-filtro{ margin-bottom: 14px; }
.ac-field-btn{ display:flex; align-items:flex-end; }
.ac-field-btn .ac-btn{ height: 42px; }

.ac-quick-links{ display:flex; flex-wrap:wrap; gap:8px; }
.ac-chip{
	font-family: var(--ac-mono);
	font-size: 11px;
	letter-spacing: 0.6px;
	color: var(--ac-gray);
	border: 1px solid var(--ac-border);
	padding: 6px 12px;
	border-radius: var(--ac-radius);
	text-decoration:none;
	transition: border-color .15s ease, color .15s ease;
}
.ac-chip:hover{ color: var(--ac-white-solid); border-color: var(--ac-white-solid); }
.ac-chip-ghost{ color: var(--ac-gray-dim); border-style: dashed; }

.ac-pending-count{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	margin-left: 4px;
	background: var(--ac-white-solid);
	color: var(--ac-bg);
	border-radius: 50%;
	font-size: 10px;
	font-weight: 700;
}

.ac-print-only{ display: none; }
.ac-print-meta{ font-family: var(--ac-mono); font-size: 12px; color: var(--ac-gray-dim); margin-top: 4px; }

/* ---------- Impressão / Baixar em PDF ---------- */
@media print{
	.ac-no-print{ display: none !important; }
	.ac-print-only{ display: block !important; }
	.ac-panel, .ac-body{ background: #ffffff !important; border: none !important; }
	.ac-panel{ padding-bottom: 0 !important; }
	.ac-print-area{
		box-shadow:none !important;
		border: none !important;
		padding: 0 !important;
	}
	.ac-print-area::before, .ac-print-area::after{ display:none !important; }
	.ac-card-header h2{ color:#000 !important; }
	.ac-table thead th{
		background: #f2f2f2 !important;
		color:#000 !important;
		border-color:#ccc !important;
	}
	.ac-table tbody td{ color:#000 !important; border-color:#ddd !important; }
	.ac-badge-dentro{ background:#000 !important; color:#fff !important; }
	.ac-badge-saiu{ border-color:#999 !important; color:#333 !important; }
}

/* ---------- Formulários ---------- */
.ac-form{ display:flex; flex-direction:column; gap: 16px; }
.ac-field{ display:flex; flex-direction:column; gap:6px; flex:1 1 220px; min-width:0; }
.ac-field span{
	font-family: var(--ac-mono);
	font-size: 11px;
	letter-spacing: 1.2px;
	color: var(--ac-gray);
	text-transform: uppercase;
}
.ac-field input, .ac-field select{
	background: var(--ac-panel-2);
	border: 1px solid var(--ac-border);
	color: var(--ac-white-solid);
	padding: 11px 12px;
	font-family: var(--ac-sans);
	font-size: 14px;
	border-radius: var(--ac-radius);
	outline: none;
	transition: border-color .15s ease, background .15s ease;
}
.ac-field input:focus, .ac-field select:focus{
	border-color: var(--ac-white-solid);
	background: #1e1e21;
}
.ac-field-row{ display:flex; flex-wrap: wrap; gap: 16px; }
.ac-field-row .ac-field-sm{ max-width: 210px; }
@media (max-width: 560px){
	.ac-field-row .ac-field{ flex-basis: 100%; }
	.ac-field-row .ac-field-sm{ max-width:none; }
}

.ac-field input[type="datetime-local"]{
	color-scheme: dark;
	font-family: var(--ac-mono);
	font-size: 13px;
}

.ac-field input[type="file"]{
	padding: 9px 10px;
	font-family: var(--ac-sans);
	font-size: 13px;
	cursor: pointer;
}
.ac-field input[type="file"]::file-selector-button{
	font-family: var(--ac-mono);
	font-size: 11px;
	letter-spacing: 0.8px;
	text-transform: uppercase;
	background: var(--ac-white-solid);
	color: var(--ac-bg);
	border: none;
	padding: 7px 12px;
	border-radius: var(--ac-radius);
	margin-right: 10px;
	cursor: pointer;
}

.ac-thumb{
	display:block;
	width: 48px;
	height: 64px;
	object-fit: cover;
	object-position: center top;
	border: 1px solid var(--ac-border);
	border-radius: var(--ac-radius);
}
.ac-thumb-empty{ color: var(--ac-gray-dim); }

/* ---------- Botões ---------- */
.ac-btn{
	font-family: var(--ac-mono);
	font-size: 12.5px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	text-decoration:none;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding: 12px 20px;
	border: 1px solid var(--ac-white-solid);
	background: var(--ac-white-solid);
	color: var(--ac-bg);
	cursor:pointer;
	border-radius: var(--ac-radius);
	transition: opacity .15s ease, background .15s ease, color .15s ease;
}
.ac-btn:hover{ opacity:.82; }
.ac-btn-block{ width:100%; }
.ac-btn-primary{}
.ac-btn-outline{
	background: transparent;
	color: var(--ac-white-solid);
	border-color: var(--ac-border);
}
.ac-btn-outline:hover{ border-color: var(--ac-white-solid); opacity:1; }
.ac-btn-ghost{
	background: transparent;
	color: var(--ac-gray);
	border-color: var(--ac-border);
}
.ac-btn-ghost:hover{ color: var(--ac-white-solid); border-color: var(--ac-white-solid); opacity:1; }
.ac-btn-sm{ padding: 7px 12px; font-size: 11px; }
.ac-inline-form{ display:inline-block; margin:0; }
.ac-actions-cell{ white-space: nowrap; }
.ac-actions-group{ justify-content: flex-start; }
.ac-btn-danger{
	border-width: 1px;
	border-color: var(--ac-white-solid);
	font-weight: 700;
}
.ac-btn-danger:hover{ background: var(--ac-white-solid); color: var(--ac-bg); opacity:1; }

.ac-current-photo{
	display:flex;
	align-items:center;
	gap: 12px;
	margin-bottom: 10px;
}
.ac-checkbox{
	display:flex;
	align-items:center;
	gap: 6px;
	font-family: var(--ac-mono);
	font-size: 11px;
	color: var(--ac-gray);
	text-transform: none;
	letter-spacing: 0.4px;
	cursor: pointer;
}
.ac-checkbox input{ accent-color: var(--ac-white-solid); }

.ac-form-excluir{
	margin-top: 22px;
	padding-top: 20px;
	border-top: 1px dashed var(--ac-border);
}
.ac-inline-form-saida{
	display:flex;
	align-items:center;
	gap: 8px;
	flex-wrap: wrap;
}
.ac-input-inline{
	background: var(--ac-panel-2);
	border: 1px solid var(--ac-border);
	color: var(--ac-white-solid);
	padding: 7px 8px;
	font-family: var(--ac-mono);
	font-size: 12px;
	border-radius: var(--ac-radius);
	color-scheme: dark;
	outline: none;
}
.ac-input-inline:focus{ border-color: var(--ac-white-solid); }

/* ---------- Tabela de registros ---------- */
.ac-table-wrap{ overflow-x:auto; border: 1px solid var(--ac-border); }
.ac-table{
	width:100%;
	border-collapse: collapse;
	font-size: 13px;
	min-width: 720px;
}
.ac-table thead th{
	text-align:left;
	font-family: var(--ac-mono);
	font-size: 10.5px;
	letter-spacing: 1.4px;
	color: var(--ac-gray-dim);
	text-transform: uppercase;
	padding: 12px 14px;
	border-bottom: 1px solid var(--ac-border);
	background: var(--ac-panel-2);
	white-space: nowrap;
}
.ac-table tbody td{
	padding: 12px 14px;
	border-bottom: 1px solid var(--ac-border-soft);
	color: var(--ac-white);
	vertical-align: middle;
}
.ac-table tbody tr:hover{ background: rgba(255,255,255,0.02); }
.ac-empty{ text-align:center; color: var(--ac-gray-dim); font-family: var(--ac-mono); padding: 30px !important; }

.ac-badge{
	font-family: var(--ac-mono);
	font-size: 10.5px;
	letter-spacing: 1px;
	padding: 4px 9px;
	border-radius: var(--ac-radius);
	display:inline-block;
}
.ac-badge-dentro{ background: var(--ac-white-solid); color: var(--ac-bg); font-weight:700; }
.ac-badge-saiu{ border: 1px solid var(--ac-border); color: var(--ac-gray-dim); }

/* ---------- Genérico ---------- */
.ac-wrap > .ac-card:last-child{ margin-bottom: 0; }

/* ---------- Página (body) ---------- */
.ac-body{
	background: var(--ac-bg);
	margin: 0;
	min-height: 100vh;
	overflow-x: hidden;
}

/* ---------- Responsividade ---------- */
html{ -webkit-text-size-adjust: 100%; }

.ac-table-wrap{ -webkit-overflow-scrolling: touch; }

/* Tablets */
@media (max-width: 900px){
	.ac-wrap{ padding: 22px 16px; }
	.ac-card{ padding: 22px 18px 26px; }
	.ac-grid-2{ gap: 16px; }
}

/* Celulares (deitado / telas médias) */
@media (max-width: 680px){
	.ac-topbar{ padding: 14px 16px; gap: 10px; }
	.ac-brand-name{ font-size: 13px; letter-spacing: 1.5px; }
	.ac-topbar-user{ flex-wrap: wrap; gap: 10px; row-gap: 8px; }
	.ac-topbar-op{ font-size: 11px; }
	.ac-status-off{ font-size: 10px; letter-spacing: 1px; }

	.ac-card-header h2{ font-size: 19px; }
	.ac-card-header-split{ align-items: flex-start; }
	.ac-stat{ text-align: left; }
	.ac-header-actions{ width: 100%; justify-content: space-between; }

	.ac-form-filtro .ac-field-row{ flex-direction: column; }
	.ac-field-btn{ width: 100%; }
	.ac-field-btn .ac-btn{ width: 100%; }

	.ac-table{ font-size: 12px; }
	.ac-table thead th, .ac-table tbody td{ padding: 10px; }

	.ac-quick-links{ gap: 6px; }
	.ac-chip{ padding: 7px 11px; }

	.ac-card::before, .ac-card::after{ width: 8px; height: 8px; }
}

/* Celulares pequenos */
@media (max-width: 420px){
	.ac-wrap{ padding: 16px 12px; }
	.ac-card{ padding: 18px 14px 22px; }
	.ac-brand-name{ font-size: 11.5px; letter-spacing: 1px; }
	.ac-eyebrow{ font-size: 10px; letter-spacing: 1.6px; }
	.ac-card-header h2{ font-size: 17px; }
	.ac-btn{ font-size: 11.5px; padding: 11px 16px; }
	.ac-btn-sm{ padding: 8px 12px; font-size: 10.5px; }
	.ac-stat-num{ font-size: 24px; }
	.ac-field input, .ac-field select{ padding: 10px; font-size: 13.5px; }
	.ac-inline-form-saida{ width: 100%; }
	.ac-input-inline{ width: 100%; }
}
