/* Utility pages follow the Home's olive surfaces and spacing. Navigation is shared separately. */
html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) { min-width: 320px; }
html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) :is(main, section, article, aside, form) { min-width: 0; }
html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) main :is(h1, h2) { max-width: none; overflow-wrap: normal; }
html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) :is(input, select, button) { font-family: inherit; }
html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) :is(input:not([type='checkbox']):not([type='radio']):not([type='range']), select) { min-width: 0; min-height: 44px; }
html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) .legal-footer { width: min(1360px, calc(100% - 64px)) !important; margin: 0 auto 24px !important; }

/* Login: both panels and the panda have dedicated space in the document flow. */
html body.entry-body.login-screen { display: block; min-height: 100dvh; padding: 0; }
html body.entry-body .login-shell { width: min(1120px, calc(100% - 64px)); margin: 28px auto 40px; }
html body.entry-body .login-card { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); width: 100%; min-height: 0; margin: 0; border: 1px solid var(--gp-line); border-radius: 20px; overflow: hidden; }
html body.entry-body .login-showcase { display: grid; grid-template-columns: minmax(0, 1fr) 160px; grid-template-rows: repeat(4, auto); align-content: start; gap: 24px; padding: 32px; border-right: 1px solid var(--gp-line); border-radius: 0; }
html body.entry-body .login-showcase .login-logo { display: inline-flex; grid-column: 1 / -1; grid-row: 1; }
html body.entry-body .login-showcase-copy { grid-column: 1 / -1; grid-row: 2; max-width: none; margin: 0; padding: 0; gap: 14px; }
html body.entry-body .login-showcase-copy > span { min-height: 34px; padding-inline: 12px; border-radius: 999px; font-size: 11px; font-weight: 650; }
html body.entry-body .login-showcase-copy h2 { max-width: none; font-size: clamp(27px, 2.7vw, 36px); font-weight: 800; line-height: 1.12; letter-spacing: -.9px; }
html body.entry-body .login-showcase-copy p { max-width: none; font-size: 14px; line-height: 1.6; }
html body.entry-body .login-showcase-copy h2 span, html body.entry-body .login-header h1 span { color: var(--gp-accent); }
html body.entry-body .login-showcase-grid { display: grid; grid-column: 1 / -1; grid-row: 3; grid-template-columns: repeat(3, minmax(0, 1fr)); width: 100%; max-width: none; margin: 0; gap: 10px; }
html body.entry-body .login-showcase-grid article { min-height: 88px; padding: 13px 11px; border: 1px solid var(--gp-line); border-radius: 15px; }
html body.entry-body .login-showcase-grid strong { color: var(--gp-accent) !important; font-size: 15px; font-weight: 750; line-height: 1.35; white-space: normal; }
html body.entry-body .login-showcase-grid span { margin-top: 5px; font-size: 11px; font-weight: 450; line-height: 1.5; }
html body.entry-body .login-security { display: flex; grid-column: 1; grid-row: 4; align-self: center; width: auto; max-width: none; gap: 10px; padding: 12px; border: 1px solid var(--gp-line); border-radius: 15px; }
html body.entry-body .login-security > span { flex: 0 0 36px; width: 36px; height: 36px; border-radius: 11px; background: var(--gp-surface-raised); color: var(--gp-accent); }
html body.entry-body .login-security div { max-width: none; min-width: 0; }
html body.entry-body .login-security strong { font-size: 12px; font-weight: 650; line-height: 1.4; }
html body.entry-body .login-security p { font-size: 11px; line-height: 1.5; }
html body.entry-body .login-panda { position: static; grid-column: 2; grid-row: 4; align-self: end; justify-self: end; width: 160px; height: 160px; max-width: 100%; margin: 0; object-fit: contain; filter: none; }
html body.entry-body .login-panel { display: grid; align-content: center; margin: 0; padding: 32px; border-radius: 0; }
html body.entry-body .login-form-card { width: 100%; max-width: none; gap: 18px; padding: 24px; border: 1px solid var(--gp-line); border-radius: 15px; }
html body.entry-body .login-panel .login-logo-mobile { display: none; }
html body.entry-body .login-panel .login-header { display: grid; gap: 10px; }
html body.entry-body .login-header h1 { max-width: none; font-size: clamp(28px, 2.5vw, 34px); line-height: 1.15; letter-spacing: -.7px; }
html body.entry-body .login-header p { display: block; max-width: none; font-size: 13px; line-height: 1.6; }
html body.entry-body .login-form { gap: 14px; margin: 0; }
html body.entry-body .login-field > span { font-size: 13px; font-weight: 650; }
html body.entry-body .login-input-shell { grid-template-columns: 20px minmax(0, 1fr) auto; gap: 8px; min-height: 50px; padding: 0 10px; border-radius: 12px; }
html body.entry-body .login-input-shell input { width: 100%; min-height: 48px; padding: 0; font-size: 16px; }
html body.entry-body .password-toggle { width: 44px; height: 44px; margin: 0 -6px 0 0; }
html body.entry-body :is(.login-submit, .google-login-button, .create-account-button) { min-height: 48px; padding: 10px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; line-height: 1.4; }
html body.entry-body :is(.forgot-link, .guest-link) { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; font-size: 12px; font-weight: 650; }
html body.entry-body .login-divider { font-size: 12px; }
html body.entry-body .login-divider::before, html body.entry-body .login-divider::after { background: var(--gp-line); }
html body.entry-body .form-status { font-size: 12px; font-weight: 550; line-height: 1.5; }
html body.entry-body :is(.login-showcase, .login-showcase-copy > span)::before,
html body.entry-body .login-showcase::after { display: none !important; }

/* The legal notice keeps its reading width instead of yielding to the links. */
html body.entry-body .legal-footer { width: 100% !important; margin: 0 auto 24px !important; }
html body.entry-body.login-screen .legal-footer-inner { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; justify-items: stretch; width: min(1120px, calc(100% - 64px)); gap: 20px; padding: 24px; text-align: left; }
html body.entry-body .legal-footer-brand { min-width: 0; width: 100%; text-align: left; }
html body.entry-body .legal-footer-brand strong { font-size: 14px; line-height: 1.4; }
html body.entry-body .legal-footer-brand p { display: block; width: 100%; max-width: 70ch; margin: 6px 0 0; font-size: 13px; line-height: 1.6; text-align: left; }
html body.entry-body .legal-footer nav { min-width: 0; width: 100%; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 8px; }
html body.entry-body .legal-footer :is(a, button) { display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 44px; padding: 8px 12px; border: 1px solid var(--gp-line); border-radius: 999px; font-size: 12px; font-weight: 650; line-height: 1.4; white-space: normal; text-align: center; }
@media (min-width: 1200px) {
  html body.entry-body.login-screen .legal-footer-inner { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 32px; }
  html body.entry-body .legal-footer nav { justify-content: flex-end; }
}
@media (max-width: 760px) {
  html body.entry-body.login-screen .legal-footer-inner { width: calc(100% - 32px) !important; padding: 20px !important; gap: 16px !important; }
  html body.entry-body .legal-footer nav { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  html body.entry-body .legal-footer :is(a, button) { width: 100%; }
  html body.entry-body .legal-footer button[data-privacy-preferences] { grid-column: 1 / -1 !important; }
}

/* Mercado Livre setup keeps a compact, readable form under the shared header. */
html body.setup-body .setup-page { display: block; width: min(1360px, calc(100% - 64px)); min-height: 0; margin: 28px auto 40px; padding: 0; }
html body.setup-body .setup-card { display: grid; width: min(760px, 100%); margin: 0 auto; gap: 18px; padding: 32px; border-radius: 20px; overflow: visible; }
html body.setup-body .setup-card::before, html body.setup-body .setup-card::after { display: none !important; }
html body.setup-body .setup-back { display: inline-flex; align-items: center; min-height: 44px; font-size: 12px; letter-spacing: 0; text-transform: none; }
html body.setup-body .setup-kicker { width: fit-content; min-height: 30px; font-size: 10px; font-weight: 650; }
html body.setup-body .setup-card h1 { max-width: none; margin: 0; font-size: clamp(28px, 3vw, 38px); line-height: 1.15; letter-spacing: -.8px; }
html body.setup-body .setup-card p { max-width: none; margin: 0; font-size: 14px; line-height: 1.65; }
html body.setup-body .setup-note { padding: 16px; border: 1px solid var(--gp-line); border-radius: 15px; font-size: 13px; line-height: 1.6; }
html body.setup-body .field-group { display: grid; gap: 8px; }
html body.setup-body .field-group span { font-size: 12px; font-weight: 650; line-height: 1.4; text-transform: none; }
html body.setup-body .field-group input { width: 100%; min-height: 48px; border-radius: 12px; padding-inline: 13px; font-size: 16px; }
html body.setup-body #redirectUri { display: block; width: 100%; max-width: 100%; min-height: 76px; resize: vertical; padding: 12px 13px; border-radius: 12px; font: inherit; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; word-break: break-all; }
html body.setup-body .setup-actions { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 12px; }
html body.setup-body .setup-actions :is(.primary-button, .secondary-button) { min-height: 48px; padding: 10px 14px; border-radius: 999px; font-size: 13px; line-height: 1.4; white-space: normal; }
html body.setup-body .config-status { min-height: 44px; padding: 13px 15px; border-radius: 15px; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }

/* Alert dashboard: flexible rows prevent clipped legends and status text. */
html body.alerts-page .dashboard-shell { width: 100%; padding: 0; }
html body.alerts-page .page-main { display: grid; width: min(1360px, calc(100% - 64px)); max-width: none; margin: 0 auto; gap: 24px; padding: 28px 0 40px; }
html body.alerts-page .page-intro { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .7fr); gap: 28px; min-height: 0; margin: 0; padding: 28px; border: 1px solid var(--gp-line); border-radius: 20px; background: var(--gp-surface) !important; }
html body.alerts-page .page-intro > div { width: 100%; max-width: none; }
html body.alerts-page .page-intro h1 { max-width: none; margin: 12px 0 0; font-size: clamp(29px, 3vw, 42px); line-height: 1.12; letter-spacing: -.9px; }
html body.alerts-page .page-intro p { max-width: none; margin: 14px 0 0; font-size: 14px; line-height: 1.6; }
html body.alerts-page .intro-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; gap: 18px; margin: 0; padding: 18px; border: 1px solid var(--gp-line); border-radius: 15px; }
html body.alerts-page .intro-status > div { min-width: 0; min-height: 0; align-content: start; padding: 0; border: 0; }
html body.alerts-page .intro-status :is(dt, dd) { margin: 0; font-size: 12px; line-height: 1.5; white-space: normal; }
html body.alerts-page .intro-status dd { margin-top: 8px; font-weight: 650; }
html body.alerts-page .kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
html body.alerts-page .kpi-card { min-height: 140px; gap: 14px; padding: 20px; border: 1px solid var(--gp-line); border-radius: 15px; background: var(--gp-surface); box-shadow: var(--gp-shadow); }
html body.alerts-page .kpi-card .kpi-icon { width: 44px; height: 44px; border-radius: 13px; background: var(--gp-soft); color: var(--gp-accent); }
html body.alerts-page .kpi-card h2 { font-size: 11px; line-height: 1.5; }
html body.alerts-page .kpi-card strong { font-size: 30px; line-height: 1.2; }
html body.alerts-page .kpi-card p { font-size: 11px; line-height: 1.5; }
html body.alerts-page .dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(340px, .8fr); grid-template-rows: auto auto; gap: 24px; margin: 0; }
html body.alerts-page .panel-card { min-width: 0; padding: 24px; border-radius: 20px; }
html body.alerts-page .chart-panel { grid-column: 1; grid-row: 1 / span 2; height: auto; min-height: 360px; }
html body.alerts-page :is(.panel-heading, .table-heading) { flex-wrap: wrap; gap: 14px; margin-bottom: 20px; padding: 0; }
html body.alerts-page .panel-card h2 { margin: 0; font-size: 17px; line-height: 1.4; letter-spacing: -.3px; }
html body.alerts-page .chart-legend { gap: 10px 16px; font-size: 11px; }
html body.alerts-page .activity-chart { height: auto; min-height: 220px; aspect-ratio: 760 / 300; }
html body.alerts-page .activity-chart text { fill: var(--gp-muted); }
html body.alerts-page .activity-chart :is(.grid-line, .axis-line) { stroke: var(--gp-line); }
html body.alerts-page .sources-panel { grid-column: 2; grid-row: 1; height: auto; min-height: 0; }
html body.alerts-page .donut-layout { grid-template-columns: 110px minmax(0, 1fr); gap: 18px; margin-top: 18px; }
html body.alerts-page .donut-chart { width: 110px; height: 110px; }
html body.alerts-page .donut-chart::after { width: 58px; height: 58px; background: var(--gp-surface); }
html body.alerts-page .source-list li { grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 4px 8px; }
html body.alerts-page .source-list strong { font-size: 12px; line-height: 1.5; }
html body.alerts-page .source-list em { grid-column: 2; max-width: none; font-size: 11px; line-height: 1.45; text-align: left; }
html body.alerts-page .source-dot { margin-top: 4px; }
html body.alerts-page .flow-card { grid-column: 2; grid-row: 2; height: auto; min-height: 140px; }
html body.alerts-page .flow-success { grid-template-columns: 36px minmax(0, 1fr); gap: 12px; margin-top: 16px; }
html body.alerts-page .flow-success dl { grid-column: 2; margin: 0; }
html body.alerts-page .content-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 350px); gap: 24px; margin: 0; }
html body.alerts-page .upcoming-list { gap: 16px; margin-top: 20px; }
html body.alerts-page .upcoming-list article { min-width: 0; padding: 0; }
html body.alerts-page .upcoming-list time { white-space: normal; font-size: 12px; }
html body.alerts-page .panel-link { min-height: 44px; margin: 18px 0 0; padding: 8px 14px; border-radius: 999px; font-size: 12px; }
html body.alerts-page :is(.kpi-card, .panel-card)::before, html body.alerts-page :is(.kpi-card, .panel-card)::after { display: none !important; }

/* Tables retain every column and scroll within their own card on narrow screens. */
html body:is(.alerts-page, .analysis-page) .table-wrap { width: 100%; max-width: 100%; margin: 0; overflow: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--gp-scrollbar-thumb) transparent; border: 1px solid var(--gp-line); border-radius: 15px; }
html body.alerts-page .alerts-card table { display: table; width: 100%; min-width: 820px; border-collapse: collapse; table-layout: auto; }
html body.alerts-page .alerts-card table thead { display: table-header-group; }
html body.alerts-page .alerts-card table tbody { display: table-row-group; }
html body.alerts-page .alerts-card table tr { display: table-row; padding: 0; }
html body.alerts-page .alerts-card table :is(th, td) { display: table-cell !important; width: auto !important; border-top: 1px solid var(--gp-line); padding: 13px 16px; vertical-align: top; white-space: normal !important; overflow: visible !important; text-overflow: clip; font-size: 12px; line-height: 1.5; }
html body.alerts-page .alerts-card table td:nth-child(2) { min-width: 230px; }
html body.alerts-page .alerts-card table :is(a, button) { min-height: 44px; }
html body.analysis-page .table-wrap table { min-width: 920px; }
html body.analysis-page .table-wrap :is(th, td) { padding: 14px; line-height: 1.5; white-space: normal; }

/* Product analysis: the filter, cards and table share the same content bounds. */
html body.analysis-page .page-shell { width: min(1360px, calc(100% - 64px)); margin: 0 auto; padding: 28px 0 40px; }
html body.analysis-page .analysis-header { min-height: 0; margin-bottom: 24px; gap: 24px; padding: 28px; border-radius: 20px; }
html body.analysis-page .analysis-header h1 { max-width: none; font-size: clamp(29px, 3vw, 42px); line-height: 1.12; letter-spacing: -.9px; }
html body.analysis-page .sheet-link { min-height: 44px; padding: 11px 18px; border-radius: 999px; font-size: 13px; white-space: normal; text-align: center; }
html body.analysis-page .summary-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-bottom: 24px; }
html body.analysis-page .summary-card { min-height: 104px; padding: 20px; border-radius: 15px; }
html body.analysis-page .summary-card::before, html body.analysis-page .summary-card::after { display: none !important; }
html body.analysis-page .summary-card span { font-size: 12px; line-height: 1.5; }
html body.analysis-page .summary-card strong { font-size: 29px; line-height: 1.2; }
html body.analysis-page .analysis-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 24px; align-items: start; }
html body.analysis-page .filter-panel { position: sticky; top: 24px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; max-height: none; padding: 20px; border-radius: 20px; overflow: visible; }
html body.analysis-page .field-label { font-size: 11px; line-height: 1.5; }
html body.analysis-page :is(.text-input, .select-input) { width: 100%; height: 46px; border-radius: 12px; font-size: 14px; }
html body.analysis-page :is(.segmented, .density-toggle) button { min-height: 44px; padding: 8px; border-radius: 12px; font-size: 12px; }
html body.analysis-page .results-panel { min-width: 0; padding: 24px; border-radius: 20px; }
html body.analysis-page .results-toolbar { flex-wrap: wrap; gap: 18px; margin-bottom: 24px; }
html body.analysis-page .results-toolbar h2 { font-size: 20px; line-height: 1.4; }
html body.analysis-page .density-toggle { grid-template-columns: repeat(2, minmax(0, 1fr)); width: 184px; }
html body.analysis-page .product-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); grid-auto-rows: auto; gap: 24px; }
html body.analysis-page .product-card { min-height: 0; border-radius: 15px; }
html body.analysis-page .product-body { padding: 18px; }
html body.analysis-page .analysis-load-more { min-height: 48px; padding: 12px 18px; border-radius: 999px; }

@media (max-width: 1099px) {
  html body.entry-body .login-card { grid-template-columns: minmax(0, 1fr); }
  html body.entry-body .login-showcase { border-right: 0; border-bottom: 1px solid var(--gp-line); }
  html body.entry-body .login-panel { padding: 28px; }
  html body.entry-body .login-form-card { width: min(540px, 100%); margin: 0 auto; }
  html body.alerts-page .kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body.alerts-page .page-intro { grid-template-columns: minmax(0, 1fr); }
  html body.alerts-page .dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body.alerts-page .chart-panel { grid-column: 1 / -1; grid-row: 1; }
  html body.alerts-page .sources-panel { grid-column: 1; grid-row: 2; }
  html body.alerts-page .flow-card { grid-column: 2; grid-row: 2; }
  html body.alerts-page .content-grid { grid-template-columns: minmax(0, 1fr); }
  html body.analysis-page .analysis-layout { grid-template-columns: minmax(0, 1fr); }
  html body.analysis-page .filter-panel { position: static; }
}
@media (max-width: 760px) {
  html body:is(.entry-body, .alerts-page, .analysis-page, .setup-body) .legal-footer { width: calc(100% - 32px) !important; }
  html body.entry-body .login-shell, html body.setup-body .setup-page, html body.analysis-page .page-shell, html body.alerts-page .page-main { width: calc(100% - 32px); }
  html body.entry-body .login-shell, html body.setup-body .setup-page { margin-top: 24px; margin-bottom: 32px; }
  html body.analysis-page .page-shell, html body.alerts-page .page-main { padding-top: 24px; padding-bottom: 32px; }
  html body.analysis-page .analysis-header { align-items: flex-start; flex-direction: column; padding: 24px; }
  html body.analysis-page .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  html body.alerts-page .donut-layout { grid-template-columns: minmax(0, 1fr); justify-items: start; }
}
@media (max-width: 640px) {
  html body.entry-body .login-showcase { grid-template-columns: minmax(0, 1fr) 112px; gap: 20px; padding: 20px; }
  html body.entry-body .login-showcase-copy h2 { font-size: clamp(25px, 7vw, 31px); }
  html body.entry-body .login-showcase-grid { gap: 8px; }
  html body.entry-body .login-showcase-grid article { padding: 12px 9px; }
  html body.entry-body .login-showcase-grid strong { font-size: 12px; }
  html body.entry-body .login-showcase-grid span { font-size: 10px; }
  html body.entry-body .login-panda { width: 112px; height: 112px; }
  html body.entry-body .login-security { display: block; padding: 11px; }
  html body.entry-body .login-security > span { display: none; }
  html body.entry-body .login-panel { padding: 20px; }
  html body.entry-body .login-form-card { gap: 18px; padding: 0; border: 0; background: transparent !important; }
  html body.entry-body .login-header h1 { font-size: 27px; }
  html body.setup-body .setup-card { padding: 22px 20px; }
  html body.setup-body .setup-actions { grid-template-columns: minmax(0, 1fr); }
  html body.alerts-page :is(.page-intro, .panel-card) { padding: 22px 20px; }
  html body.alerts-page .kpi-grid { grid-template-columns: minmax(0, 1fr); }
  html body.alerts-page .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
  html body.alerts-page :is(.chart-panel, .sources-panel, .flow-card) { grid-column: 1; grid-row: auto; }
  html body.alerts-page .chart-panel { min-height: 0; }
  html body.alerts-page .donut-layout { grid-template-columns: 110px minmax(0, 1fr); }
  html body.alerts-page .intro-status { grid-template-columns: minmax(0, 1fr); padding: 16px; }
  html body.analysis-page :is(.filter-panel, .results-panel) { padding: 20px; }
  html body.analysis-page .analysis-header { padding: 22px 20px; }
  html body.analysis-page .summary-grid { gap: 16px; }
  html body.analysis-page .summary-card { padding: 16px; }
  html body.analysis-page .summary-card strong { font-size: 25px; }
  html body.analysis-page .results-toolbar { align-items: stretch; flex-direction: column; }
  html body.analysis-page .density-toggle { width: 100%; }
  html body.analysis-page .product-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 360px) {
  html body.entry-body .login-showcase { grid-template-columns: minmax(0, 1fr) 92px; padding: 18px; }
  html body.entry-body .login-panda { width: 92px; height: 92px; }
  html body.entry-body .login-showcase-grid { grid-template-columns: minmax(0, 1fr); }
  html body.entry-body .login-showcase-grid article { min-height: 0; }
  html body.alerts-page .donut-layout { grid-template-columns: minmax(0, 1fr); }
}
