beta-NORM / app /frontend /styles.css
GitHub Actions
Sync from GitHub master
92145af
html, body, .stApp {
background-color: var(--bg) !important;
}
[data-testid="stDecoration"] {
display: none !important;
}
[data-testid="stHeader"] {
background: transparent !important;
border-bottom: none !important;
box-shadow: none !important;
}
header {
visibility: hidden;
height: 0 !important;
}
.block-container {
padding-top: 5.5rem !important;
padding-bottom: 16rem !important;
max-width: 100% !important;
}
div[data-testid="stVerticalBlockBorderWrapper"] {
border: none !important;
background: transparent !important;
}
div[data-testid="stVerticalBlock"]:has(> div[data-testid="stVerticalBlockBorderWrapper"]) {
background: transparent !important;
}
.app-footer-disclaimer {
position: fixed;
left: 50%;
bottom: 1.25rem;
transform: translateX(-50%);
width: min(1100px, calc(100vw - 4rem));
text-align: center;
color: rgba(255, 255, 255, 0.72);
font-size: 0.84rem;
line-height: 1.4;
z-index: 41;
pointer-events: none;
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
div[data-testid="stChatInput"] {
backdrop-filter: blur(10px);
}
/* Input Field Styling */
div[data-testid="stTextInput"] {
margin-bottom: 0px !important;
}
div[data-testid="stTextInput"] div[data-baseweb="input"] {
background-color: var(--input_bg) !important;
border: 1px solid var(--chip_border) !important;
border-radius: 99px !important;
min-height: 72px !important;
height: 72px !important;
padding: 0 25px !important;
align-items: center !important;
}
/* File Uploader Styling */
div[data-testid="stFileUploader"] [data-testid="stFileUploaderDropzoneInstructions"],
div[data-testid="stFileUploader"] small {
display: none !important;
}
div[data-testid="stFileUploader"] [data-testid="stFileUploaderDropzone"] {
min-height: 42px !important;
padding: 6px !important;
border: 1px dashed var(--chip_border) !important;
border-radius: 10px !important;
background: transparent !important;
}
div[data-testid="stFileUploader"] section {
padding: 0 !important;
}
/* Quita estilos internos adicionales del input */
div[data-testid="stTextInput"] div[data-baseweb="input"] > div {
background: transparent !important;
box-shadow: none !important;
}
div[data-testid="stTextInput"] div[data-baseweb="input"]::before,
div[data-testid="stTextInput"] div[data-baseweb="input"]::after {
display: none !important;
}
div[data-testid="stTextInput"] div[data-baseweb="input"] input {
background-color: transparent !important;
border: none !important;
color: var(--text_primary) !important;
-webkit-text-fill-color: var(--text_primary) !important;
caret-color: var(--text_primary) !important;
font-size: 1.2rem !important;
min-height: 100% !important;
height: 100% !important;
padding: 0 !important;
}
div[data-testid="stTextInput"] div[data-baseweb="input"]:focus-within {
border-color: var(--accent) !important;
box-shadow: 0 0 0 1px var(--accent) !important;
}
div[data-testid="stTextInput"] input::placeholder {
color: var(--muted) !important;
-webkit-text-fill-color: var(--muted) !important;
opacity: 1 !important;
}
/* Buttons & Popovers */
div[data-testid="stPopover"] > button {
border-radius: 50% !important;
width: 52px !important;
height: 52px !important;
min-height: 52px !important;
padding: 0 !important;
background-color: var(--chip_bg) !important;
border: 1px solid var(--chip_border) !important;
color: var(--text_primary) !important;
font-size: 1.35rem !important;
margin-top: 10px !important;
}
div[data-testid="stPopover"] > button:hover {
background-color: var(--chip_hover) !important;
border-color: var(--muted) !important;
}
.attach-option-label {
color: var(--text_primary);
font-size: 0.95rem;
margin-bottom: 6px;
}
div[data-testid="stButton"] > button[kind="primary"] {
border-radius: 50% !important;
width: 65px !important;
height: 65px !important;
padding: 0 !important;
background-color: var(--accent) !important;
border: none !important;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3) !important;
font-size: 1.6rem !important;
display: flex;
align-items: center;
justify-content: center;
margin-top: 0px !important;
}
/* Suggestion Chips */
.suggestion-btn button {
background-color: var(--chip_bg) !important;
border: 1px solid var(--chip_border) !important;
color: var(--muted) !important;
border-radius: 20px !important;
font-size: 0.95rem !important;
padding: 12px 20px !important;
height: auto !important;
margin: 4px !important;
width: 100% !important;
transition: all 0.2s ease;
}
.suggestion-btn button:hover {
background-color: var(--chip_hover) !important;
color: var(--hover_text) !important;
border-color: var(--muted) !important;
}
/* Quitar estilos nativos del chat de Streamlit */
.stChatMessage,
div[data-testid="stChatMessage"] {
background: transparent !important;
border: none !important;
box-shadow: none !important;
padding: 0.15rem 0 !important;
margin: 0 !important;
}
.stChatMessageContent,
div[data-testid="stChatMessage"] [data-testid="stChatMessageContent"] {
background: transparent !important;
border: none !important;
box-shadow: none !important;
padding: 0 !important;
}
.download-inline-btn {
display: inline-block;
padding: 8px 14px;
border: 1px solid var(--chip_border);
border-radius: 10px;
background: var(--input_bg);
color: var(--text_primary);
text-decoration: none;
font-weight: 600;
}
.download-inline-btn:hover {
background: var(--chip_hover);
color: var(--hover_text);
}
/* Chat Bubbles & Layout */
.chat-row {
display: flex;
align-items: flex-end;
margin-bottom: 24px;
width: 100%;
}
.chat-row.user {
flex-direction: row-reverse;
}
.chat-row.assistant {
flex-direction: row;
}
.chat-avatar {
width: 38px;
height: 38px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--chip_bg);
border: 1px solid var(--chip_border);
flex-shrink: 0;
font-size: 1.1rem;
margin: 0 12px;
}
.chat-bubble {
max-width: 75%;
padding: 16px 20px;
border-radius: 18px;
font-size: 1.05rem;
line-height: 1.5;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}
.chat-bubble.user {
background-color: var(--input_bg);
color: var(--text_primary);
border: 1px solid var(--chip_border);
border-bottom-right-radius: 4px;
}
.chat-bubble.assistant {
background-color: var(--panel);
color: var(--text_primary);
border: 1px solid var(--chip_border);
border-bottom-left-radius: 4px;
}
/* Headers and Welcome Text */
.bottom-welcome {
text-align: center;
color: var(--muted);
margin-top: 3rem;
font-size: 1rem;
line-height: 1.6;
}
h1.main-title {
text-align: center;
font-family: 'Helvetica Neue', sans-serif;
font-weight: 700;
color: var(--text_primary);
margin-bottom: 0.2rem;
font-size: 2.5rem;
}
p.subtitle {
text-align: center;
color: var(--muted);
font-size: 1.1rem;
margin-bottom: 3.5rem;
}
/* Título sugerido da apresentação (área de PPTX) */
.ppt-title-display {
background-color: var(--input_bg);
border-radius: 999px;
border: 1px solid var(--chip_border);
padding: 14px 20px;
color: var(--text_primary);
font-size: 1rem;
}
/* Spinner global ("Analisando...") como overlay central com leve blur */
div[data-testid="stSpinner"] {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
background: rgba(0, 0, 0, 0.12);
backdrop-filter: blur(2px);
z-index: 50;
}
div[data-testid="stSpinner"] > div {
background-color: var(--panel);
border-radius: 999px;
padding: 8px 18px;
color: var(--muted);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
font-size: 0.9rem;
display: inline-flex !important;
align-items: center;
justify-content: center;
width: auto !important;
max-width: min(420px, 90vw);
}
div[data-testid="stSpinner"] svg {
margin-right: 6px;
}
/* Cabeçalho compacto quando há conversa em andamento */
.header-compact {
display: inline-flex;
align-items: center;
gap: 8px;
padding-top: 0.75rem;
}
.st-key-header_home button {
position: fixed !important;
top: 1.25rem;
left: 2.75rem;
z-index: 42 !important;
background: transparent !important;
border: none !important;
box-shadow: none !important;
color: var(--text_primary) !important;
padding: 0 !important;
min-height: auto !important;
font-family: 'Helvetica Neue', sans-serif;
font-weight: 600;
font-size: 1.1rem !important;
display: inline-flex !important;
align-items: center;
gap: 8px;
}
.st-key-header_home button:hover {
background: transparent !important;
color: var(--text_primary) !important;
}
.st-key-header_home button:focus {
box-shadow: none !important;
}
.header-logo {
width: 32px;
height: 32px;
border-radius: 8px;
background-color: var(--chip_bg);
border: 1px solid var(--chip_border);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.3rem;
}
.header-title {
font-family: 'Helvetica Neue', sans-serif;
font-weight: 600;
font-size: 1.1rem;
color: var(--text_primary);
}