* { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; min-height: 100vh; font-family: var(--body-font); color: var(--text); background: var(--bg); overflow-x: hidden; position: relative; } body::before, body::after { content: ''; position: fixed; pointer-events: none; z-index: 0; } a { color: inherit; text-decoration: none; } button, input, select { font: inherit; } button { cursor: pointer; } input::placeholder { color: var(--muted); opacity: 0.82; } mark { background: var(--mark-bg); color: inherit; padding: 0 2px; border-radius: 4px; } .page-shell { position: relative; z-index: 1; max-width: 1340px; margin: 0 auto; padding: 28px 20px 72px; } .top-strip { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; } .brand-lockup { display: flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .brand-mark { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; background: var(--primary); color: #fff; border: 1px solid var(--line-strong); } .brand-lockup strong { font-size: 0.84rem; } .brand-lockup span { color: var(--accent); } .top-note { font-size: 0.88rem; color: var(--muted); max-width: 480px; text-align: right; } .hero-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.8fr); gap: 24px; align-items: stretch; margin-bottom: 28px; } .hero-copy, .ambient-panel, .quote-panel, .result-card, .result-hero { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-xl); box-shadow: var(--shadow-soft); backdrop-filter: var(--panel-filter); } .hero-copy { padding: clamp(28px, 4vw, 52px); } .eyebrow, .panel-kicker, .signal-kicker, .note-label, .result-badge { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 999px; background: var(--pill-bg); border: 1px solid var(--line); color: var(--accent); font-size: 0.76rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; } .hero-title { margin: 18px 0 16px; max-width: 10ch; font-family: var(--title-font); font-size: clamp(2.8rem, 6vw, 5.8rem); line-height: 0.94; letter-spacing: -0.05em; } .hero-lead, .panel-copy, .signal-card p, .support-card p, .result-summary, .inline-note, .section-head p, .value-sub { color: var(--muted); line-height: 1.7; } .hero-lead { max-width: 58ch; font-size: 1.04rem; } .hero-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 26px 0 28px; } .inline-note { max-width: 360px; font-size: 0.92rem; } .hero-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } .stat-card, .support-card, .note-card, .form-card, .metric-box, .highlight-card, .service-body { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius-lg); } .stat-card { padding: 18px; } .stat-value, .value-hero { font-family: var(--title-font); font-weight: 800; line-height: 0.95; } .stat-value { font-size: 1.55rem; } .stat-label, .field label, .section-index, .metric-box .label, .highlight-card .label, .taxas-table th, .muted-label { font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); font-weight: 800; } .ambient-panel { padding: 24px; display: flex; } .signal-card { width: 100%; padding: 22px; border-radius: calc(var(--radius-lg) + 2px); background: var(--surface-strong); border: 1px solid var(--line); display: flex; flex-direction: column; gap: 18px; } .signal-card h2, .panel-title { margin: 0; font-family: var(--title-font); line-height: 1.05; } .signal-card h2 { font-size: clamp(1.4rem, 2.8vw, 2.35rem); } .signal-list, .note-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; } .signal-list li, .note-list li { display: flex; align-items: flex-start; gap: 10px; } .signal-list i, .note-list i { color: var(--accent); margin-top: 2px; } .content-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr); gap: 24px; align-items: start; } .quote-panel { padding: 24px; } .panel-heading { margin-bottom: 18px; } .panel-title { margin: 10px 0 10px; font-size: clamp(1.5rem, 2.4vw, 2.15rem); } .form-stack, .support-grid { display: grid; gap: 16px; } .form-card, .note-card { padding: 18px; } .section-head { display: flex; align-items: flex-start; gap: 14px; margin-bottom: 16px; } .section-index { min-width: 48px; min-height: 48px; padding: 0 10px; display: inline-flex; align-items: center; justify-content: center; border-radius: 14px; background: var(--surface-strong); border: 1px solid var(--line); } .section-head h3, .support-card h3, .result-card h3 { margin: 0 0 6px; font-size: 1rem; line-height: 1.2; } .field-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .field-grid.triplet { grid-template-columns: repeat(3, minmax(0, 1fr)); } .field { display: flex; flex-direction: column; gap: 8px; } .input-shell { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 14px; border: 1px solid var(--line); border-radius: 16px; background: var(--input-bg); } .input-shell i { color: var(--muted); } .input-shell input, .input-shell select { flex: 1; min-width: 0; padding: 16px 0; border: 0; outline: none; color: var(--text); background: transparent; } .input-shell input[type='checkbox'] { flex: 0 0 auto; width: 22px; height: 22px; accent-color: var(--accent); } .field-note, .rs-detail { font-size: 0.83rem; color: var(--muted); } .email-status, .route-status, .message-alert { display: none; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 16px; line-height: 1.45; } .email-status.show, .route-status.show, .message-alert.show { display: flex; } .email-status.ok, .route-status.ok { background: rgba(22, 163, 74, 0.08); border: 1px solid rgba(22, 163, 74, 0.2); color: var(--success); } .email-status.fail, .route-status.fail, .message-alert.fail { background: rgba(191, 8, 17, 0.08); border: 1px solid rgba(191, 8, 17, 0.22); color: var(--danger); } .email-status.checking, .route-status.checking { background: var(--surface-strong); border: 1px solid var(--line); color: var(--muted); } .portos-loading { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: var(--muted); font-size: 0.92rem; } .portos-grid { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .porto-wrap { position: relative; } .porto-input { width: 100%; min-height: 56px; padding: 0 46px 0 44px; border: 1px solid var(--line); border-radius: 16px; background: var(--input-bg); color: var(--text); outline: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; } .porto-input:focus, .input-shell:focus-within { border-color: var(--accent); box-shadow: 0 0 0 4px var(--focus-ring); } .porto-icon { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); } .porto-clear { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; color: var(--muted); display: none; padding: 0; } .porto-dropdown { position: absolute; left: 0; right: 0; top: calc(100% + 6px); max-height: 260px; overflow-y: auto; display: none; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-soft); z-index: 20; backdrop-filter: var(--panel-filter); } .porto-dropdown.open { display: block; } .porto-option { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); cursor: pointer; } .porto-option:last-child { border-bottom: 0; } .porto-option:hover, .porto-option.focused { background: var(--surface-strong); } .opt-code { padding: 4px 8px; border-radius: 8px; background: var(--pill-bg); border: 1px solid var(--line); font-family: var(--mono-font); font-weight: 700; flex-shrink: 0; } .opt-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .opt-tipo { margin-left: auto; flex-shrink: 0; color: var(--muted); font-size: 0.75rem; } .porto-empty { padding: 14px; text-align: center; color: var(--muted); } .porto-selected-badge { display: none; align-items: center; gap: 8px; margin-top: 8px; padding: 10px 12px; border-radius: 14px; background: var(--surface-strong); border: 1px solid var(--line); } .porto-selected-badge.show { display: flex; } .badge-code { font-family: var(--mono-font); font-weight: 700; } .service-list { display: grid; gap: 12px; } .service-option { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: start; } .service-option input { margin-top: 18px; accent-color: var(--accent); } .service-body { padding: 16px; transition: border-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease; } .service-option input:checked + .service-body { border-color: var(--accent); background: var(--surface-strong); box-shadow: var(--shadow-soft); transform: translateY(-1px); } .service-top, .service-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .service-title { font-weight: 800; } .service-chip { padding: 6px 10px; border-radius: 999px; background: var(--pill-bg); border: 1px solid var(--line); font-size: 0.76rem; font-weight: 700; } .service-meta, .service-breakdown { margin-top: 10px; color: var(--muted); font-size: 0.9rem; } .toggle-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } .toggle-card { display: flex; align-items: center; gap: 14px; padding: 16px; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-2); cursor: pointer; transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease; } .toggle-card.selected { border-color: var(--accent); background: var(--surface-strong); box-shadow: var(--shadow-soft); } .toggle-card:hover, .primary-cta:hover:not(:disabled), .secondary-cta:hover, .support-card:hover { transform: translateY(-2px); } .toggle-copy { min-width: 0; } .toggle-title { font-weight: 800; } .toggle-desc { margin-top: 4px; color: var(--muted); font-size: 0.88rem; } .toggle-card .form-check-input { width: 22px; height: 22px; accent-color: var(--accent); } .url-preview-box { display: none; padding: 16px; border-radius: 16px; background: var(--surface-strong); border: 1px solid var(--line); font-family: var(--mono-font); font-size: 0.82rem; line-height: 1.6; word-break: break-all; } .url-preview-box.show { display: block; } .url-method { font-weight: 800; color: var(--accent); margin-right: 8px; } .url-param { color: var(--accent); } .form-actions, .result-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; } .primary-cta, .secondary-cta { min-height: 54px; padding: 0 22px; border-radius: 16px; border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 10px; transition: transform 0.18s ease, opacity 0.18s ease, box-shadow 0.18s ease; } .primary-cta { background: var(--primary); color: #fff; box-shadow: var(--shadow); } .primary-cta:disabled { opacity: 0.55; cursor: not-allowed; box-shadow: none; } .secondary-cta { background: transparent; color: var(--text); border-color: var(--line-strong); } .support-card { padding: 18px; display: flex; gap: 14px; align-items: flex-start; transition: transform 0.18s ease; } .support-step { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; border-radius: 12px; background: var(--pill-bg); border: 1px solid var(--line); font-family: var(--mono-font); font-weight: 800; } .note-card { margin-top: 16px; } .result-section { display: none; margin-top: 28px; } .result-section.is-visible { display: block; } .result-hero { padding: 24px; margin-bottom: 20px; display: grid; gap: 16px; } .result-badge { width: fit-content; } .result-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 18px; } .result-card { padding: 24px; } .result-main { grid-column: span 7; } .result-secondary { grid-column: span 5; } .result-full { grid-column: span 12; } .route-pill-line, .tag-list { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .badge-port, .tag-pill { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border-radius: 999px; background: var(--pill-bg); border: 1px solid var(--line); font-size: 0.82rem; font-weight: 700; } .metric-grid, .highlight-grid { display: grid; gap: 12px; } .metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 20px 0; } .highlight-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .metric-box, .highlight-card { padding: 16px; } .metric-box .value, .highlight-card .value { margin-top: 6px; font-size: 1.04rem; font-weight: 800; } .value-hero { font-size: clamp(2rem, 4vw, 3rem); } .value-sub { margin-top: 8px; } .taxas-table { width: 100%; border-collapse: collapse; } .taxas-table th, .taxas-table td { padding: 12px 10px; text-align: left; border-bottom: 1px solid var(--line); } .taxas-table th:last-child, .taxas-table td:last-child { text-align: right; } .rules-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; cursor: pointer; } .rules-log { display: none; margin: 16px 0 0; padding: 16px 18px; list-style: none; border-radius: 16px; background: var(--surface-strong); border: 1px solid var(--line); color: var(--muted); font-family: var(--mono-font); font-size: 0.84rem; line-height: 1.6; } .rules-log.open { display: block; } .rules-log li::before { content: '▸ '; color: var(--accent); } @media (max-width: 1100px) { .hero-grid, .content-grid { grid-template-columns: 1fr; } .ambient-panel { min-height: 0; } .result-main, .result-secondary, .result-full { grid-column: span 12; } } @media (max-width: 760px) { .top-strip { flex-direction: column; align-items: flex-start; } .top-note { text-align: left; } .hero-stats, .field-grid, .field-grid.triplet, .toggle-grid, .metric-grid, .highlight-grid, .portos-grid { grid-template-columns: 1fr; } .form-actions, .result-actions { align-items: stretch; } .primary-cta, .secondary-cta { width: 100%; } } @media (max-width: 520px) { .page-shell { padding: 18px 14px 56px; } .hero-copy, .ambient-panel, .quote-panel, .result-card, .result-hero { padding: 18px; } .hero-title { max-width: 100%; font-size: clamp(2.2rem, 12vw, 3.6rem); } .service-option { grid-template-columns: 1fr; } .service-option input { margin-top: 0; } }