Files
carinha-control-panel/painel.css

247 lines
5.2 KiB
CSS

/* ==========================================================================
PAINEL DE CÂMERA & ROSTO · CARINHA HUD STYLE
========================================================================== */
/* Se o painel for carregado como iframe limpo (no topo), exibe APENAS a câmera */
html.is-clean-embed body {
margin: 0 !important;
padding: 0 !important;
overflow: hidden !important;
background: transparent !important;
}
html.is-clean-embed .painel-workspace {
display: block;
margin: 0;
}
html.is-clean-embed .painel-monitor-sticky {
width: 100% !important;
top: 0 !important;
position: static !important;
}
html.is-clean-embed .cartao {
margin: 0 !important;
padding: 0 !important;
border: none !important;
background: transparent !important;
box-shadow: none !important;
border-radius: 0 !important;
}
/* Oculta quase tudo, deixa só a câmera (div.visao) */
html.is-clean-embed .cabecalho,
html.is-clean-embed .texto-fraco,
html.is-clean-embed .ajustes-grade,
html.is-clean-embed .sensores,
html.is-clean-embed .painel-controls-scroll,
html.is-clean-embed .rodape,
html.is-clean-embed #ajustesRastreamento,
html.is-clean-embed #trackingEstado,
html.is-clean-embed #sensorEstado {
display: none !important;
}
html.is-clean-embed h1,
html.is-clean-embed .sub,
html.is-clean-embed > div:first-of-type {
display: none !important;
}
/* Oculta o segundo cartão inteiro (Prévia do Celular) */
html.is-clean-embed .painel-monitor-sticky > section:not(:first-child) {
display: none !important;
}
/* Centraliza e expande o vídeo/imagem */
html.is-clean-embed .visao {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
border-radius: 0;
border: none;
background: transparent;
min-height: unset;
aspect-ratio: unset;
}
html.is-clean-embed .visao video,
html.is-clean-embed .visao img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.supervisao {
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr);
gap: 22px;
margin: 18px 0 24px;
}
.visao {
position: relative;
background: #020509;
border: 1px solid rgba(92, 214, 255, 0.35);
border-radius: var(--raio-lg);
min-height: 320px;
aspect-ratio: 16 / 9;
overflow: hidden;
display: grid;
place-items: center;
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.7), inset 0 0 60px rgba(0, 0, 0, 0.9);
}
.visao::after {
content: "";
position: absolute;
inset: 12px;
border: 1px dashed rgba(92, 214, 255, 0.2);
border-radius: var(--raio-md);
pointer-events: none;
}
.visao img, .visao video {
width: 100%;
height: 100%;
object-fit: contain;
position: absolute;
inset: 0;
z-index: 2;
}
.visao p {
max-width: 44ch;
text-align: center;
color: #9bb7cf;
padding: 24px;
font-size: 14.5px;
line-height: 1.6;
z-index: 1;
}
.cabecalho {
display: flex;
align-items: center;
justify-content: space-between;
gap: 12px;
margin-bottom: 14px;
}
.cabecalho h2 {
margin: 0;
font-size: 18px;
}
.sensores {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 18px;
margin-top: 18px;
background: rgba(10, 18, 30, 0.6);
padding: 14px 18px;
border-radius: var(--raio-md);
border: 1px solid var(--borda);
}
meter {
display: block;
width: 100%;
height: 12px;
margin-top: 8px;
border-radius: 6px;
overflow: hidden;
background: rgba(20, 35, 55, 0.6);
}
meter::-webkit-meter-bar {
background: rgba(20, 35, 55, 0.6);
border-radius: 6px;
}
meter::-webkit-meter-optimum-value {
background: linear-gradient(90deg, #38bdf8, #5cd6ff);
box-shadow: 0 0 10px rgba(92, 214, 255, 0.5);
}
.rosto-preview {
width: 100%;
height: 190px;
border: 1px solid var(--borda);
border-radius: var(--raio-md);
background: #000000;
margin-top: 16px;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5), inset 0 0 20px rgba(0, 0, 0, 0.8);
}
.ajustes {
margin-top: 22px;
}
.ajustes-grade {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
gap: 16px 28px;
margin-top: 12px;
}
.ajuste {
display: flex;
align-items: center;
gap: 12px;
justify-content: space-between;
padding: 8px 12px;
background: rgba(12, 21, 35, 0.5);
border: 1px solid rgba(56, 82, 110, 0.25);
border-radius: var(--raio-sm);
}
.ajuste-range {
margin-top: 10px;
padding: 10px 14px;
background: rgba(12, 21, 35, 0.5);
border: 1px solid rgba(56, 82, 110, 0.25);
border-radius: var(--raio-sm);
}
.ajuste-range label {
display: flex;
justify-content: space-between;
gap: 16px;
font-weight: 500;
}
#gestos button {
padding: 8px 14px;
font-size: 13px;
border-radius: var(--raio-sm);
background: rgba(22, 38, 60, 0.65);
border: 1px solid var(--borda);
transition: all 0.16s ease;
}
#gestos button:hover {
background: rgba(35, 62, 95, 0.85);
border-color: var(--ciano);
color: #ffffff;
transform: translateY(-2px);
box-shadow: 0 4px 14px rgba(92, 214, 255, 0.25);
}
#rostos button {
padding: 8px 16px;
font-weight: 600;
border-radius: var(--raio-sm);
}
#rostos button.on {
background: var(--ciano);
border-color: var(--ciano);
color: #041420;
font-weight: 700;
box-shadow: 0 0 16px var(--ciano-glow);
}
@media (max-width: 820px) {
.supervisao {
grid-template-columns: 1fr;
}
.visao {
min-height: 220px;
}
}