/* Reset */ * { box-sizing: border-box; } body { font-family: 'Poppins', sans-serif; margin: 0; padding: 16px; background-color: #FAFAFA; color: #212121; } /* Wrapper centralizado para toda a interface */ #sidebar { max-width: 500px; margin: 0 auto; position: relative; /* Essencial para o posicionamento absoluto do overlay */ } /* Estilo geral dos ícones (para filtros) */ .icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; pointer-events: none; color: black; } .icon svg { fill: currentColor; width: 100%; height: 100%; } /* Campo de busca com ícone SVG */ .input-icon { position: relative; margin-bottom: 16px; } .input-icon input { width: 100%; padding: 10px 14px 10px 40px; border: none; border-radius: 8px; font-family: 'Poppins'; font-size: 14px; font-weight: 400; background-color: #f5f5f5; color: black; box-shadow: 0 1px 3px rgba(0,0,0,0.1); transition: background-color 0.3s, box-shadow 0.3s; } .input-icon input::placeholder { color: #616161; } .input-icon input:focus { outline: none; background-color: #FFFFFF; box-shadow: 0 0 0 1px #3957BD; } /* Select com ícone SVG */ .filters { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; } .select-icon { position: relative; } .select-icon select { width: 100%; padding: 10px 14px 10px 40px; font-size: 14px; border: none; border-radius: 8px; font-family: 'Poppins', sans-serif; background-color: #f5f5f5; color: black; box-shadow: 0 1px 3px rgba(0,0,0,0.1); transition: background-color 0.3s, box-shadow 0.3s; appearance: none; background-image: none; } .select-icon select:focus { outline: none; background-color: #FFFFFF; box-shadow: 0 0 0 1px #3957BD; } /* Tabs */ .tabs { display: flex; gap: 8px; margin-bottom: 16px; } .tab-button { flex: 1; padding: 8px 10px; background-color: #f5f5f5; border: none; border-radius: 8px; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); cursor: pointer; font-family: 'Poppins'; font-weight: 500; font-size: 13px; transition: background-color 0.2s, color 0.2s; color: black; text-align: center; display: inline-flex; align-items: center; justify-content: center; gap: 6px; } .tab-button:hover { background-color: #e8eaf6; color: #303f9f; } .tab-button.active { background-color: #3957BD; color: white; font-weight: 600; } .tab-icon { width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; margin-bottom: -2px; } /* Container dos modelos */ #modelos-container { margin-top: 16px; display: flex; flex-direction: column; gap: 12px; } /* Card de modelo */ .modelo-card { background-color: white; border-radius: 12px; padding: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.04); transition: transform 0.2s ease-out, box-shadow 0.2s ease-out; position: relative; margin-bottom: 12px; overflow: hidden; /* Essencial para a animação de wipe */ } .modelo-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0,0,0,0.1), 0 2px 4px rgba(0,0,0,0.06); } .modelo-card.favoritado { box-shadow: 0 1px 3px rgba(57, 87, 189, 0.2), 0 1px 2px rgba(57, 87, 189, 0.1); } /* Animação de "wipe" (direita para a esquerda) no Card */ @keyframes card-wipe { 0% { transform: translateX(101%); } 20%, 80% { transform: translateX(0); } 100% { transform: translateX(-101%); } } .modelo-card::after { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.08); transform: translateX(101%); /* Começa fora da tela, à direita */ pointer-events: none; } .modelo-card.card-refresh-active::after { animation: card-wipe 500ms cubic-bezier(0.4, 0, 0.2, 1); } /* Tags no início do card */ .modelo-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; } /* Título do modelo */ .modelo-title { font-weight: 600; font-size: 15px; color: #3957bd; margin-top: 0; margin-bottom: 10px; } /* Área de texto do preview */ .modelo-texto { font-size: 12px; font-weight: 400; color: #6f6f6f; margin-bottom: 12px; line-height: 1.5; position: relative; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; max-height: 90px; transition: max-height 0.4s ease-in-out; } /* Fade-out do preview */ .modelo-texto::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2.5em; background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 15%, white 85%); pointer-events: none; transition: opacity 0.3s ease-in-out; opacity: 1; } /* Preview Expandido */ .modelo-texto.preview-expanded { -webkit-line-clamp: unset; max-height: 1500px; } .modelo-texto.preview-expanded::after { opacity: 0; } /* Estilos para HTML dentro do preview */ .modelo-texto p { margin: 0 0 0.5em 0; font-size: inherit; font-family: inherit; line-height: inherit; } .modelo-texto p:last-child { margin-bottom: 0; } .modelo-texto strong { font-weight: 500; color: #535353; } .modelo-texto a { color: #1a73e8; text-decoration: underline; } .modelo-texto a:hover { color: #0d47a1; } /* --- Ações dos cards --- */ .modelo-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 8px; } /* Botões de Ícone */ .md-icon-button { background: transparent; border: none; border-radius: 50%; padding: 6px; cursor: pointer; transition: background-color 0.2s, transform 0.15s, color 0.2s; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; color: black; flex-shrink: 0; } .md-icon-button:hover { background-color: rgba(0, 0, 0, 0.06); color: #1a73e8; } .md-icon-button:active { background-color: rgba(0, 0, 0, 0.1); transform: translateY(1px); } .md-icon-button svg { width: 20px; height: 20px; display: block; fill: currentColor; } .copy-singular-button { /* Herda todos os estilos de .md-icon-button */ } .md-icon-button.favorito-button.favoritado { color: #3957BD; } .expand-preview-button.active { background-color: rgba(26, 115, 232, 0.1); color: #1a73e8; } .info-button.active { background-color: rgba(26, 115, 232, 0.1); color: #1a73e8; } /* Tags dos filtros superiores */ .tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; margin-bottom: 16px; } .tag { background-color: #E8EAF6; color: #3949AB; font-size: 11px; padding: 4px 10px; border-radius: 16px; font-weight: 500; transition: background-color 0.2s, color 0.2s; cursor: pointer; user-select: none; border: none; } .tag:hover { background-color: #C5CAE9; } .tag.ativa { background-color: #3957BD; color: white; font-weight: 600; } /* Botão Limpar Filtros */ #clear-filters-container { text-align: right; margin-top: -4px; margin-bottom: 16px; padding-top: 0;} .link-limpar-filtros { display: inline-block; margin: 0; padding: 4px 0; font-size: 12px; color: #5f6368; text-decoration: underline; cursor: pointer; background-color: transparent; border: none; border-radius: 0; transition: color 0.2s; } .link-limpar-filtros:hover { color: #1a73e8; text-decoration: underline; } /* Título Principal */ .logo-title { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; /* AJUSTADO para dar espaço para version-info */ } .logo-title h2 { font-size: 20px; font-weight: 600; color: black; margin: 0; } .logo-svg { width: 24px; height: 24px; fill: #3957BD; flex-shrink: 0; } /* --- Seções de Categoria e Tipo --- */ .secao-categoria { margin-top: 16px; margin-bottom: 0; border-bottom: none; padding-bottom: 0; } .titulo-categoria-com-icone { font-size: 20px; font-weight: 600; color: #3957BD; margin-bottom: 8px; border-bottom: none; padding-bottom: 0; cursor: pointer; user-select: none; } .categoria-titulo-wrapper { display: flex; align-items: center; gap: 8px; } .titulo-categoria-com-icone .category-icon { color: black; flex-shrink: 0; } .categoria-titulo-wrapper > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .toggle-arrow { flex-shrink: 0; display: inline-flex; align-items: center; color: black; } .toggle-arrow svg { width: 20px; height: 20px; transition: transform 0.3s ease; } .tipos-container { overflow: hidden; max-height: 10000px; opacity: 1; transition: max-height 0.4s ease-in-out, opacity 0.3s ease-in-out 0.05s; padding-top: 4px; margin-bottom: 8px; } .secao-categoria.collapsed .tipos-container { max-height: 0; opacity: 0; transition: max-height 0.3s ease-out, opacity 0.2s ease-out; padding-top: 0; margin-bottom: 0; } .secao-tipo-certidao > h3 { font-size: 14px; font-weight: 600; color: #37474F; margin-top: 8px; margin-bottom: 8px; padding-left: 4px; } .tipos-container .secao-tipo-certidao:first-child > h3 { margin-top: 0; } /* --- Fim das Seções de Categoria e Tipo --- */ /* Tags dentro dos Cards */ .tag-chip { display: inline-block; font-size: 8px; font-weight: 500; padding: 2px 6px; margin: 0 4px 6px 0; border-radius: 12px; text-transform: uppercase; letter-spacing: 0.5px; cursor: pointer; transition: background-color 0.2s, color 0.2s, filter 0.2s; background-color: #e8eaf6; color: #3949ab; } .tag-chip[data-tag-value='baixo'] { background-color: #00984F; color: white; } .tag-chip[data-tag-value='moderado'] { background-color: #F2C036; color: white; } .tag-chip[data-tag-value='alto'] { background-color: #E94E58; color: white; } .tag-chip[data-tag-value='slpj'] { background-color: #741b47; color: white; } .tag-chip[data-tag-value='sql-ascendente'] { background-color: #9d264f; color: white; } .tag-chip[data-tag-value='area-maior'] { background-color: #9e3c11; color: white; } .tag-chip[data-tag-value='18-meses'] { background-color: #46777a; color: white; } .tag-chip[data-tag-value='novo-alinhamento'] { background-color: #021841; color: white; } .tag-chip[data-tag-value='complexidade-n4'] { background-color: #741b47; color: white; } .tag-chip[data-tag-value='autos-fisicos'] { background-color: #4b3800; color: white; } .tag-chip[data-tag-value='em-segredo'] { background-color: #d1cf29; color: white; } .tag-chip:hover { filter: brightness(90%); } .tag-chip.ativa { background-color: #3957bd; color: white; font-weight: 700; filter: none; } /* Toast */ @keyframes toast-wipe { 0%, 100% { transform: scaleX(0); } 10%, 90% { transform: scaleX(1); } } .toast { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(calc(100% + 24px)); background-color: #212121; color: #fff; padding: 12px 20px; border-radius: 8px; font-size: 14px; font-weight: 500; text-align: center; opacity: 0; transition: transform 300ms cubic-bezier(0.4, 0, 0.2, 1), opacity 300ms cubic-bezier(0.4, 0, 0.2, 1); z-index: 9999; pointer-events: none; box-shadow: 0 4px 12px rgba(0,0,0,0.25); overflow: hidden; /* Para a animação de wipe interna */ } .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); } .toast::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.15); transform-origin: left; transform: scaleX(0); z-index: 0; } .toast.show::after { /* Animação de wipe da esquerda para a direita que dura quase todo o tempo do toast */ animation: toast-wipe 2.3s cubic-bezier(0.4, 0, 0.2, 1); } /* Sentinela e Fallbacks */ .sentinela { height: 1px; visibility: hidden; } .carregando, .sem-resultados { text-align: center; color: #757575; padding: 20px; font-style: italic; font-size: 14px; } /* Highlight */ mark.search-highlight { background-color: #FFF9C4; color: #212121; border-radius: 2px; padding: 0 1px; font-weight: 500; box-shadow: none; } /* Info Card Expansível */ .info-card { background-color: #f8f9f5; border-radius: 12px; border-top: 0px solid #e0e0e0; padding: 10px 12px; margin: 8px -16px -16px -16px; position: relative; z-index: 1; clear: both; overflow: hidden; max-height: 0; opacity: 0; transition: max-height 0.4s ease-in-out, opacity 0.3s ease-in-out, padding-top 0.3s ease-in-out, padding-bottom 0.3s ease-in-out, margin-top 0.3s ease-in-out; box-sizing: border-box; } .info-card.info-visible { max-height: 500px; opacity: 1; margin-top: 8px; padding-top: 10px; padding-bottom: 10px; } .info-card p { margin: 0 0 5px 0; font-size: 10px; font-weight: 400; line-height: 1.5; color: #3c4043; } .info-card p:last-child { margin-bottom: 0; } .info-card strong { font-weight: 600; } .info-card a { color: #1a73e8; text-decoration: none; font-weight: 500; } .info-card a:hover { text-decoration: underline; } /* --- Fim dos Estilos do Info Card --- */ /* --- NOVOS ESTILOS / AJUSTES --- */ #version-info { font-size: 0.7rem; color: #757575; text-align: left; margin-top: 0; /* Removida margem negativa, o ajuste fino é feito na margin-bottom do .logo-title */ margin-bottom: 16px; /* Espaçamento padrão antes do próximo elemento (campo de busca) */ font-weight: 400; padding-left: 34px; /* (largura do .logo-svg: 24px) + (gap do .logo-title: 10px) = 34px */ } #loading-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(250, 250, 250, 0.9); display: flex; justify-content: center; align-items: center; z-index: 10000; transition: opacity 0.3s ease-out, visibility 0s linear 0.3s; /* Garante que visibility só mude após opacidade */ opacity: 1; visibility: visible; } #loading-overlay.hidden { opacity: 0; visibility: hidden; } .logo-svg-loader { width: 60px; height: 60px; fill: #3957BD; animation: pulse 1.5s ease-in-out infinite; } @keyframes pulse { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.1); opacity: 0.7; } 100% { transform: scale(1); opacity: 1; } }