sistema-de-chamados/globals.css
esdrasrenan 7946b8d017 feat: migrate auth stack and admin portal
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-10-05 17:25:57 -03:00

683 lines
No EOL
18 KiB
CSS

@import "tailwindcss";
@import "tw-animate-css";
@custom-variant dark (&:is(.dark *));
@theme inline {
--animate-scroll: scroll var(--animation-duration, 40s) var(--animation-direction, forwards) linear infinite;
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
--color-sidebar-ring: var(--sidebar-ring);
--color-sidebar-border: var(--sidebar-border);
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
--color-sidebar-accent: var(--sidebar-accent);
--color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
--color-sidebar-primary: var(--sidebar-primary);
--color-sidebar-foreground: var(--sidebar-foreground);
--color-sidebar: var(--sidebar);
--color-chart-5: var(--chart-5);
--color-chart-4: var(--chart-4);
--color-chart-3: var(--chart-3);
--color-chart-2: var(--chart-2);
--color-chart-1: var(--chart-1);
--color-ring: var(--ring);
--color-input: var(--input);
--color-border: var(--border);
--color-destructive: var(--destructive);
--color-accent-foreground: var(--accent-foreground);
--color-accent: var(--accent);
--color-muted-foreground: var(--muted-foreground);
--color-muted: var(--muted);
--color-secondary-foreground: var(--secondary-foreground);
--color-secondary: var(--secondary);
--color-primary-foreground: var(--primary-foreground);
--color-primary: var(--primary);
--color-popover-foreground: var(--popover-foreground);
--color-popover: var(--popover);
--color-card-foreground: var(--card-foreground);
--color-card: var(--card);
--radius-sm: calc(var(--radius) - 4px);
--radius-md: calc(var(--radius) - 2px);
--radius-lg: var(--radius);
--radius-xl: calc(var(--radius) + 4px);
@keyframes moveDot {
0%, 100% {
top: 10%;
right: 10%;
}
25% {
top: 10%;
right: calc(100% - 35px);
}
50% {
top: calc(100% - 30px);
right: calc(100% - 35px);
}
75% {
top: calc(100% - 30px);
right: 10%;
}
}
}
:root {
--radius: 0.625rem;
--background: oklch(1 0 0);
--foreground: oklch(0.145 0 0);
--card: oklch(1 0 0);
--card-foreground: oklch(0.145 0 0);
--popover: oklch(1 0 0);
--popover-foreground: oklch(0.145 0 0);
--primary: oklch(0.205 0 0);
--primary-foreground: oklch(0.985 0 0);
--secondary: oklch(0.97 0 0);
--secondary-foreground: oklch(0.205 0 0);
--muted: oklch(0.97 0 0);
--muted-foreground: oklch(0.556 0 0);
--accent: oklch(0.97 0 0);
--accent-foreground: oklch(0.205 0 0);
--destructive: oklch(0.577 0.245 27.325);
--border: oklch(0.922 0 0);
--input: oklch(0.922 0 0);
--ring: oklch(0.708 0 0);
--chart-1: oklch(0.646 0.222 41.116);
--chart-2: oklch(0.6 0.118 184.704);
--chart-3: oklch(0.398 0.07 227.392);
--chart-4: oklch(0.828 0.189 84.429);
--chart-5: oklch(0.769 0.188 70.08);
--sidebar: oklch(0.985 0 0);
--sidebar-foreground: oklch(0.145 0 0);
--sidebar-primary: oklch(0.205 0 0);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.97 0 0);
--sidebar-accent-foreground: oklch(0.205 0 0);
--sidebar-border: oklch(0.922 0 0);
--sidebar-ring: oklch(0.708 0 0);
--chart-green: 142.1 76.2% 36.3%;
--chart-orange: 28.3 92.5% 58.4%;
--chart-red: 0 84.2% 60.2%;
}
.dark {
--background: oklch(0.145 0 0);
--foreground: oklch(0.985 0 0);
--card: oklch(0.205 0 0);
--card-foreground: oklch(0.985 0 0);
--popover: oklch(0.205 0 0);
--popover-foreground: oklch(0.985 0 0);
--primary: oklch(0.922 0 0);
--primary-foreground: oklch(0.205 0 0);
--secondary: oklch(0.269 0 0);
--secondary-foreground: oklch(0.985 0 0);
--muted: oklch(0.269 0 0);
--muted-foreground: oklch(0.708 0 0);
--accent: oklch(0.269 0 0);
--accent-foreground: oklch(0.985 0 0);
--destructive: oklch(0.704 0.191 22.216);
--border: oklch(1 0 0 / 10%);
--input: oklch(1 0 0 / 15%);
--ring: oklch(0.556 0 0);
--chart-1: oklch(0.488 0.243 264.376);
--chart-2: oklch(0.696 0.17 162.48);
--chart-3: oklch(0.769 0.188 70.08);
--chart-4: oklch(0.627 0.265 303.9);
--chart-5: oklch(0.645 0.246 16.439);
--sidebar: oklch(0.205 0 0);
--sidebar-foreground: oklch(0.985 0 0);
--sidebar-primary: oklch(0.488 0.243 264.376);
--sidebar-primary-foreground: oklch(0.985 0 0);
--sidebar-accent: oklch(0.269 0 0);
--sidebar-accent-foreground: oklch(0.985 0 0);
--sidebar-border: oklch(1 0 0 / 10%);
--sidebar-ring: oklch(0.556 0 0);
--chart-green: 142.1 76.2% 36.3%;
--chart-orange: 28.3 92.5% 58.4%;
--chart-red: 0 84.2% 60.2%;
}
@keyframes scroll {
to {
transform: translate(calc(-50% - 0.5rem));
}
}
@layer base {
* {
@apply border-border outline-ring/50;
}
body {
@apply bg-background text-foreground;
}
}
@layer utilities {
.animate-ripple {
animation: ripple var(--duration,2s) ease calc(var(--i, 0)*.2s) infinite;
}
}
@keyframes ripple {
0%, 100% {
transform: translate(-50%, -50%) scale(1);
}
50% {
transform: translate(-50%, -50%) scale(0.9);
}
}
@keyframes bounceIn {
0% {
opacity: 0;
transform: translateY(30px) scale(0.8);
}
50% {
opacity: 1;
transform: translateY(-3px) scale(1.02);
}
70% {
transform: translateY(1px) scale(0.99);
}
100% {
opacity: 1;
transform: translateY(0) scale(1);
}
}
/* Previne flash branco em navegação durante scroll */
.rever-nav [data-slot="navigation-menu-viewport"] {
transition: opacity 150ms ease-in-out;
}
/* Estabiliza hovers durante scroll suave */
.smooth-scrolling [data-slot="navigation-menu-trigger"] {
pointer-events: none;
}
/* Otimizações de performance para scroll suave - excluindo marquee */
[style*="transform"]:not(.transform-3d):not(.transform-3d *) {
will-change: transform;
transform-style: preserve-3d;
}
/* Otimização específica para elementos animados - excluindo marquee */
.motion-div:not(.transform-3d *),
[data-framer-name]:not(.transform-3d *),
[style*="translateX"]:not(.transform-3d *),
[style*="translateY"]:not(.transform-3d *),
[style*="scale"]:not(.transform-3d *) {
will-change: transform;
contain: layout style paint;
backface-visibility: hidden;
}
/* Container de animações 3D - sem otimizações que interferem no hover */
.transform-3d {
transform-style: preserve-3d;
}
/* Garante que shadow-2xl funcione corretamente no 3D marquee */
.transform-3d img.hover\:shadow-2xl:hover {
box-shadow: 0 25px 50px -12px rgb(0 0 0 / 25%);
}
/* Otimização para imagens em movimento - excluindo 3D marquee */
img[style*="transform"]:not(.transform-3d img) {
will-change: transform;
image-rendering: optimizeSpeed;
}
/* Previne layout shift nos logos da Rever */
img[alt="Rever Logo"], [alt="Rever Logo"] {
transition: none; /* Remove transições que podem causar flash */
}
/* Remove scroll bar visível em todos os dispositivos móveis */
.no-visible-scrollbar::-webkit-scrollbar {
display: none;
}
/* Estilos específicos do blog - força texto branco */
.blog-content {
color: white !important;
}
.blog-content * {
color: white !important;
}
.blog-content p {
color: white !important;
}
.blog-content h1,
.blog-content h2,
.blog-content h3,
.blog-content h4,
.blog-content h5,
.blog-content h6 {
color: white !important;
}
.blog-content ul,
.blog-content ol,
.blog-content li {
color: white !important;
}
.blog-content blockquote {
color: white !important;
}
.blog-content div,
.blog-content span {
color: white !important;
}
/* Mantém cores específicas para links */
.blog-content a {
color: #00e8ff !important;
}
.blog-content a:hover {
color: #00d4e6 !important;
}
/* Mantém cores específicas para código */
.blog-content code {
color: #00e8ff !important;
}
/* Estilos para iframes em conteúdo de blog */
.blog-content iframe {
max-width: 100% !important;
margin: 2rem auto !important;
display: block !important;
border-radius: 12px !important;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8) !important;
}
/* Container responsivo para vídeos embarcados */
.video-embed-container {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%; /* Aspect ratio 16:9 */
margin: 2rem auto;
border-radius: 12px;
overflow: hidden;
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
}
.video-embed-container iframe {
position: absolute !important;
top: 0 !important;
left: 0 !important;
width: 100% !important;
height: 100% !important;
border: 0 !important;
margin: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
}
.no-visible-scrollbar {
-ms-overflow-style: none;
scrollbar-width: none;
}
/* Para CategoryFilter - esconde scrollbar em modo horizontal */
.scrollbar-hide {
-ms-overflow-style: none; /* IE e Edge */
scrollbar-width: none; /* Firefox */
}
.scrollbar-hide::-webkit-scrollbar {
display: none; /* Chrome, Safari e Opera */
}
/* CSS para placeholder do TipTap Editor */
.ProseMirror p.is-editor-empty:first-child::before {
content: attr(data-placeholder);
float: left;
color: #adb5bd;
pointer-events: none;
height: 0;
font-size: 0.875rem; /* Equivalente a text-sm */
}
.ProseMirror .is-empty::before {
content: attr(data-placeholder);
float: left;
color: #9ca3af !important;
pointer-events: none;
height: 0;
font-style: italic;
font-weight: normal;
}
/* Alternativa mais específica */
.prose .ProseMirror p.is-editor-empty:first-child::before {
content: attr(data-placeholder);
color: #9ca3af !important;
pointer-events: none;
height: 0;
font-style: italic;
font-weight: normal;
position: absolute;
}
/* Estilos de espaçamento do TipTap Editor */
.ProseMirror p {
margin-bottom: 1.5rem; /* Equivalente a mb-6 */
}
.ProseMirror h1 {
margin-top: 3rem; /* mt-12 */
margin-bottom: 1.5rem; /* mb-6 */
font-size: 2.25rem; /* text-4xl */
font-weight: 700;
line-height: 1.2;
}
.ProseMirror h2 {
margin-top: 2.5rem; /* mt-10 */
margin-bottom: 1.25rem; /* mb-5 */
font-size: 1.875rem; /* text-3xl */
font-weight: 700;
line-height: 1.25;
}
.ProseMirror h3 {
margin-top: 2rem; /* mt-8 */
margin-bottom: 1rem; /* mb-4 */
font-size: 1.5rem; /* text-2xl */
font-weight: 700;
line-height: 1.375;
}
.ProseMirror h4 {
margin-top: 1.5rem; /* mt-6 */
margin-bottom: 0.75rem; /* mb-3 */
font-size: 1.25rem; /* text-xl */
font-weight: 700;
}
.ProseMirror ul,
.ProseMirror ol {
margin-top: 1.5rem; /* my-6 */
margin-bottom: 1.5rem;
padding-left: 1.5rem;
}
.ProseMirror li {
margin-bottom: 0.75rem; /* space-y-3 */
}
.ProseMirror blockquote {
margin-top: 2rem; /* my-8 */
margin-bottom: 2rem;
padding-left: 1.5rem;
border-left: 4px solid #00e8ff;
font-style: italic;
color: #6b7280;
}
.ProseMirror img,
.ProseMirror [data-type="resizableImage"] {
margin-top: 2rem; /* my-8 */
margin-bottom: 2rem;
border-radius: 0.75rem;
box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
.ProseMirror pre {
margin-top: 2rem; /* my-8 */
margin-bottom: 2rem;
padding: 1rem;
background-color: #111827;
border: 1px solid #374151;
border-radius: 0.5rem;
overflow-x: auto;
}
.ProseMirror code {
background-color: #1f2937;
color: #00e8ff;
padding: 0.125rem 0.5rem;
border-radius: 0.25rem;
font-size: 0.875rem;
font-family: monospace;
}
.ProseMirror hr {
margin-top: 2rem;
margin-bottom: 2rem;
border-color: #e5e7eb;
}
/* Remover margens do primeiro e último elemento */
.ProseMirror > *:first-child {
margin-top: 0;
}
.ProseMirror > *:last-child {
margin-bottom: 0;
}
/* Espaçamento entre imagem e texto */
.ProseMirror p + [data-type="resizableImage"],
.ProseMirror [data-type="resizableImage"] + p,
.ProseMirror p + img,
.ProseMirror img + p {
margin-top: 2rem;
}
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
:root {
--background: 0 0% 100%;
--foreground: 222.2 84% 4.9%;
--card: 0 0% 100%;
--card-foreground: 222.2 84% 4.9%;
--popover: 0 0% 100%;
--popover-foreground: 222.2 84% 4.9%;
--primary: 222.2 47.4% 11.2%;
--primary-foreground: 210 40% 98%;
--secondary: 210 40% 96.1%;
--secondary-foreground: 222.2 47.4% 11.2%;
--muted: 210 40% 96.1%;
--muted-foreground: 215.4 16.3% 46.9%;
--accent: 210 40% 96.1%;
--accent-foreground: 222.2 47.4% 11.2%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--border: 214.3 31.8% 91.4%;
--input: 214.3 31.8% 91.4%;
--ring: 222.2 84% 4.9%;
--radius: 0.5rem;
--chart-1: hsl(188 100% 50%); /* #00e8ff */
--chart-2: hsl(220 13% 69%); /* light gray */
--chart-3: hsl(220 14% 96%); /* lighter gray */
--chart-4: hsl(221 83% 53%); /* blue */
--chart-5: hsl(215.4 16.3% 46.9%); /* muted text */
--chart-green: 142.1 76.2% 36.3%;
--chart-orange: 28.3 92.5% 58.4%;
--chart-red: 0 84.2% 60.2%;
}
.dark {
--background: 222.2 84% 4.9%;
--foreground: 210 40% 98%;
--card: 222.2 84% 4.9%;
--card-foreground: 210 40% 98%;
--popover: 222.2 84% 4.9%;
--popover-foreground: 210 40% 98%;
--primary: 210 40% 98%;
--primary-foreground: 222.2 47.4% 11.2%;
--secondary: 217.2 32.6% 17.5%;
--secondary-foreground: 210 40% 98%;
--muted: 217.2 32.6% 17.5%;
--muted-foreground: 215 20.2% 65.1%;
--accent: 217.2 32.6% 17.5%;
--accent-foreground: 210 40% 98%;
--destructive: 0 62.8% 30.6%;
--destructive-foreground: 210 40% 98%;
--border: 217.2 32.6% 17.5%;
--input: 217.2 32.6% 17.5%;
--ring: 212.7 26.8% 83.9%;
--chart-1: hsl(188 100% 50%); /* #00e8ff */
--chart-2: hsl(217.2 32.6% 17.5%);
--chart-3: hsl(217.2 32.6% 17.5%);
--chart-4: hsl(210 40% 98%);
--chart-5: 12.1 83.7% 60%;
--chart-green: 142.1 76.2% 36.3%;
--chart-orange: 28.3 92.5% 58.4%;
--chart-red: 0 84.2% 60.2%;
}
}
/* Estilos específicos para o TipTap Editor */
.ProseMirror ul {
list-style-type: disc;
list-style-position: outside;
margin-left: 1.5rem;
margin-top: 2rem;
margin-bottom: 2rem;
}
.ProseMirror ol {
list-style-type: decimal;
list-style-position: outside;
margin-left: 1.5rem;
margin-top: 2rem;
margin-bottom: 2rem;
}
.ProseMirror li {
margin-top: 0;
margin-bottom: -0.25rem;
padding-left: 0.5rem;
line-height: 1.25;
}
.ProseMirror p {
margin-bottom: 2rem;
line-height: 1.625;
}
.ProseMirror hr {
margin-top: 2rem;
margin-bottom: 2rem;
border: none;
border-top: 1px solid #ccc;
}
/* Garantir espaçamento adequado entre elementos */
.ProseMirror > * + * {
margin-top: 1rem;
}
.ProseMirror > ul + *,
.ProseMirror > ol + *,
.ProseMirror > * + ul,
.ProseMirror > * + ol {
margin-top: 2rem;
}
@layer base {
.shader-surface {
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
--background: oklch(0 0 0);
--foreground: oklch(1 0 0);
--card: oklch(0.1 0 0 / 0.1);
--card-foreground: oklch(1 0 0);
--popover: oklch(0 0 0 / 0.8);
--popover-foreground: oklch(1 0 0);
--primary: oklch(1 0 0);
--primary-foreground: oklch(0 0 0);
--secondary: oklch(0.65 0.25 25);
--secondary-foreground: oklch(1 0 0);
--muted: oklch(1 0 0 / 0.5);
--muted-foreground: oklch(0.7 0 0);
--accent: oklch(0.65 0.25 25);
--accent-foreground: oklch(1 0 0);
--destructive: oklch(0.6 0.25 15);
--destructive-foreground: oklch(1 0 0);
--border: oklch(1 0 0 / 0.2);
--input: oklch(1 0 0 / 0.1);
--ring: oklch(1 0 0 / 0.3);
--chart-1: oklch(0.65 0.25 25);
--chart-2: oklch(0.8 0.15 85);
--chart-3: oklch(0.7 0.2 140);
--chart-4: oklch(0.7 0.2 240);
--chart-5: oklch(0.6 0.25 300);
--radius: 0.5rem;
--sidebar: oklch(0 0 0 / 0.9);
--sidebar-foreground: oklch(1 0 0);
--sidebar-primary: oklch(0.65 0.25 25);
--sidebar-primary-foreground: oklch(1 0 0);
--sidebar-accent: oklch(0.65 0.25 25);
--sidebar-accent-foreground: oklch(1 0 0);
--sidebar-border: oklch(1 0 0 / 0.2);
--sidebar-ring: oklch(1 0 0 / 0.3);
}
.shader-surface.dark {
--background: oklch(0 0 0);
--foreground: oklch(1 0 0);
--card: oklch(0.1 0 0 / 0.1);
--card-foreground: oklch(1 0 0);
--popover: oklch(0 0 0 / 0.8);
--popover-foreground: oklch(1 0 0);
--primary: oklch(1 0 0);
--primary-foreground: oklch(0 0 0);
--secondary: oklch(0.65 0.25 25);
--secondary-foreground: oklch(1 0 0);
--muted: oklch(1 0 0 / 0.5);
--muted-foreground: oklch(0.7 0 0);
--accent: oklch(0.65 0.25 25);
--accent-foreground: oklch(1 0 0);
--destructive: oklch(0.6 0.25 15);
--destructive-foreground: oklch(1 0 0);
--border: oklch(1 0 0 / 0.2);
--input: oklch(1 0 0 / 0.1);
--ring: oklch(1 0 0 / 0.3);
--chart-1: oklch(0.65 0.25 25);
--chart-2: oklch(0.8 0.15 85);
--chart-3: oklch(0.7 0.2 140);
--chart-4: oklch(0.7 0.2 240);
--chart-5: oklch(0.6 0.25 300);
--sidebar: oklch(0 0 0 / 0.9);
--sidebar-foreground: oklch(1 0 0);
--sidebar-primary: oklch(0.65 0.25 25);
--sidebar-primary-foreground: oklch(1 0 0);
--sidebar-accent: oklch(0.65 0.25 25);
--sidebar-accent-foreground: oklch(1 0 0);
--sidebar-border: oklch(1 0 0 / 0.2);
--sidebar-ring: oklch(1 0 0 / 0.3);
}
}