/* Mesmo visual nos modelos Next.js, Express e FastAPI. Mude à vontade. */ :root { --fundo: #f6f7f9; --cartao: #ffffff; --texto: #14161a; --suave: #5b6270; --borda: #e3e6eb; --destaque: #3b5bdb; --destaque-texto: #ffffff; --destaque-suave: #edf1ff; --erro: #c92a2a; --raio: 14px; --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; color-scheme: light dark; } @media (prefers-color-scheme: dark) { :root { --fundo: #0f1115; --cartao: #171a21; --texto: #eceef2; --suave: #9aa1ad; --borda: #2a2f3a; --destaque: #8299ff; --destaque-texto: #0f1115; --destaque-suave: #1e2540; --erro: #ff8787; } } * { box-sizing: border-box; } body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; background: var(--fundo); color: var(--texto); line-height: 1.5; -webkit-text-size-adjust: 100%; } .pagina { max-width: 640px; margin: 0 auto; padding: 56px 16px 32px; } .topo { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; } .marca { flex: none; width: 40px; height: 40px; border-radius: 10px; background: var(--destaque); color: var(--destaque-texto); display: grid; place-items: center; } h1 { font-size: 28px; line-height: 1.2; margin: 0; letter-spacing: -0.02em; } h2 { font-size: 16px; margin: 32px 0 12px; } .lead { color: var(--suave); margin: 0 0 24px; } .cartao { background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio); padding: 20px; } .formulario { display: flex; gap: 8px; } .formulario input { flex: 1; min-width: 0; font: inherit; padding: 12px 14px; border: 1px solid var(--borda); border-radius: 10px; background: var(--fundo); color: var(--texto); } .formulario input:focus { outline: 2px solid var(--destaque); outline-offset: 1px; } button { font: inherit; font-weight: 600; padding: 12px 20px; border: 0; border-radius: 10px; background: var(--destaque); color: var(--destaque-texto); cursor: pointer; white-space: nowrap; } button:disabled { opacity: 0.6; cursor: progress; } button:focus-visible, a:focus-visible { outline: 2px solid var(--destaque); outline-offset: 2px; } .secundario { background: var(--cartao); color: var(--destaque); border: 1px solid var(--borda); padding: 8px 14px; } .erro { color: var(--erro); margin: 10px 0 0; font-size: 14px; } .resultado { margin-top: 16px; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; background: var(--destaque-suave); } .resultado a { flex: 1; min-width: 0; font-family: var(--mono); font-weight: 600; color: var(--destaque); text-decoration: none; overflow-wrap: anywhere; } .lista { list-style: none; margin: 0; padding: 0; } .lista li { display: flex; align-items: center; gap: 12px; padding: 12px 0; border-top: 1px solid var(--borda); } .lista li:first-child { border-top: 0; padding-top: 0; } .lista li:last-child { padding-bottom: 0; } .link-info { flex: 1; min-width: 0; } .link-info a { font-family: var(--mono); font-weight: 600; color: var(--texto); text-decoration: none; overflow-wrap: anywhere; } .link-info a:hover { color: var(--destaque); } .destino { display: block; color: var(--suave); font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .cliques { font-family: var(--mono); font-size: 14px; color: var(--suave); white-space: nowrap; } .vazio { color: var(--suave); margin: 0; } .aviso { margin: 16px 0 0; font-size: 14px; color: var(--suave); border: 1px dashed var(--borda); border-radius: var(--raio); padding: 14px 16px; } .aviso a { color: var(--destaque); font-weight: 600; } .sobre { margin-top: 32px; } .sobre h2 { margin-top: 0; } .sobre dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; font-size: 14px; } .sobre dt { color: var(--suave); } .sobre dd { margin: 0; overflow-wrap: anywhere; } .dica { font-size: 13px; color: var(--suave); margin: 14px 0 0; } code { font-family: var(--mono); font-size: 0.92em; } .rodape { margin-top: 32px; text-align: center; font-size: 13px; color: var(--suave); } .rodape a { color: inherit; } .so-leitor { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } @media (max-width: 480px) { .pagina { padding-top: 32px; } h1 { font-size: 24px; } .formulario { flex-direction: column; } .resultado { flex-direction: column; align-items: stretch; } .sobre dl { grid-template-columns: 1fr; gap: 0; } .sobre dd { margin-bottom: 8px; } }