/* =====================================
   SEO MASTER SCAN — style.css
   ===================================== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

/* ─── DESIGN TOKENS ─── */
:root {
   --brand-1: #6c63ff;
   --brand-2: #00d4a8;
   --brand-grad: linear-gradient(135deg, var(--brand-1), var(--brand-2));
   --brand-grad-soft: linear-gradient(135deg, rgba(108, 99, 255, .15), rgba(0, 212, 168, .15));

   --bg-base: #0a0b0e;
   --bg-surface: #10121a;
   --bg-card: #141720;
   --bg-card-hover: #1a1e2d;
   --bg-input: #1c2030;

   --border: rgba(255, 255, 255, .07);
   --border-brand: rgba(108, 99, 255, .4);

   --text-primary: #f0f2ff;
   --text-secondary: #8b93b8;
   --text-tertiary: #555e82;

   --ok: #00d48a;
   --ok-bg: rgba(0, 212, 138, .1);
   --warn: #f5b942;
   --warn-bg: rgba(245, 185, 66, .1);
   --error: #ff4d6a;
   --error-bg: rgba(255, 77, 106, .1);
   --info: #5b8cf7;
   --info-bg: rgba(91, 140, 247, .1);

   --radius-sm: 8px;
   --radius-md: 14px;
   --radius-lg: 20px;
   --radius-xl: 28px;

   --shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);
   --shadow-md: 0 8px 32px rgba(0, 0, 0, .4);
   --shadow-brand: 0 0 40px rgba(108, 99, 255, .25);

   --transition: .2s ease;
   --font: 'Inter', system-ui, sans-serif;
}

/* ─── RESET ─── */
*,
*::before,
*::after {
   box-sizing: border-box;
   margin: 0;
   padding: 0;
}

html {
   scroll-behavior: smooth;
}

body {
   font-family: var(--font);
   background: var(--bg-base);
   color: var(--text-primary);
   line-height: 1.6;
   min-height: 100vh;
   overflow-x: hidden;
}

a {
   color: var(--brand-1);
   text-decoration: none;
   transition: color var(--transition);
}

a:hover {
   color: var(--brand-2);
}

button {
   cursor: pointer;
   font-family: var(--font);
   border: none;
   background: none;
}

ul {
   list-style: none;
}

svg {
   display: block;
   flex-shrink: 0;
}

input,
textarea {
   font-family: var(--font);
}

/* ─── UTILITIES ─── */
.container {
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 24px;
}

.hidden {
   display: none !important;
}

.gradient-text {
   background: var(--brand-grad);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

/* ─── SCROLLBAR ─── */
::-webkit-scrollbar {
   width: 6px;
}

::-webkit-scrollbar-track {
   background: var(--bg-surface);
}

::-webkit-scrollbar-thumb {
   background: rgba(108, 99, 255, .5);
   border-radius: 3px;
}

/* ============================================================
   HEADER & NAV
   ============================================================ */
.header {
   position: sticky;
   top: 0;
   z-index: 100;
   background: rgba(10, 11, 14, .85);
   backdrop-filter: blur(20px);
   border-bottom: 1px solid var(--border);
}

.nav {
   display: flex;
   align-items: center;
   justify-content: space-between;
   height: 64px;
}

.nav__brand {
   display: flex;
   align-items: center;
   gap: 10px;
   font-size: .95rem;
   color: var(--text-primary);
}

.nav__brand strong {
   color: var(--brand-1);
}

.nav__logo {
   width: 32px;
   height: 32px;
}

.nav__name {
   font-weight: 600;
   letter-spacing: -.02em;
}

.nav__links {
   display: flex;
   align-items: center;
   gap: 8px;
}

.nav__link {
   color: var(--text-secondary);
   font-size: .875rem;
   font-weight: 500;
   padding: 6px 12px;
   border-radius: var(--radius-sm);
   transition: all var(--transition);
}

.nav__link:hover {
   color: var(--text-primary);
   background: rgba(255, 255, 255, .05);
}

.nav__btn-ghost {
   display: flex;
   align-items: center;
   gap: 6px;
   color: var(--text-secondary);
   font-size: .875rem;
   font-weight: 500;
   padding: 6px 14px;
   border: 1px solid var(--border);
   border-radius: var(--radius-sm);
   transition: all var(--transition);
}

.nav__btn-ghost:hover {
   color: var(--brand-1);
   border-color: var(--border-brand);
   background: rgba(108, 99, 255, .08);
}

/* ============================================================
   HERO
   ============================================================ */
.hero {
   position: relative;
   padding: 120px 0 80px;
   overflow: hidden;
}

.hero__bg-blobs {
   position: absolute;
   inset: 0;
   pointer-events: none;
}

.blob {
   position: absolute;
   border-radius: 50%;
   filter: blur(80px);
   opacity: .35;
}

.blob--1 {
   width: 500px;
   height: 500px;
   background: radial-gradient(circle, #6c63ff 0%, transparent 70%);
   top: -200px;
   left: -100px;
}

.blob--2 {
   width: 400px;
   height: 400px;
   background: radial-gradient(circle, #00d4a8 0%, transparent 70%);
   top: -100px;
   right: -100px;
}

.blob--3 {
   width: 600px;
   height: 600px;
   background: radial-gradient(circle, #1a1240 0%, transparent 70%);
   bottom: -200px;
   left: 50%;
   transform: translateX(-50%);
   opacity: .5;
}

.hero__content {
   position: relative;
   z-index: 1;
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   gap: 28px;
}

.hero__badge {
   display: inline-flex;
   align-items: center;
   gap: 8px;
   padding: 6px 16px;
   background: rgba(108, 99, 255, .12);
   border: 1px solid rgba(108, 99, 255, .3);
   border-radius: 999px;
   font-size: .8rem;
   font-weight: 500;
   color: var(--brand-1);
   letter-spacing: .04em;
   text-transform: uppercase;
}

.badge-dot {
   width: 6px;
   height: 6px;
   border-radius: 50%;
   background: var(--brand-1);
   animation: pulse-dot 2s ease-in-out infinite;
}

@keyframes pulse-dot {

   0%,
   100% {
      opacity: 1;
      transform: scale(1)
   }

   50% {
      opacity: .5;
      transform: scale(.7)
   }
}

.hero__title {
   font-size: clamp(2.2rem, 5vw, 4rem);
   font-weight: 800;
   line-height: 1.15;
   letter-spacing: -.04em;
}

.hero__subtitle {
   font-size: 1.1rem;
   color: var(--text-secondary);
   max-width: 600px;
   font-weight: 400;
}

/* SEARCH BAR */
.search-bar {
   display: flex;
   align-items: center;
   width: 100%;
   max-width: 680px;
   background: var(--bg-input);
   border: 1px solid var(--border);
   border-radius: var(--radius-xl);
   padding: 8px 8px 8px 20px;
   gap: 12px;
   box-shadow: var(--shadow-brand);
   transition: border-color var(--transition), box-shadow var(--transition);
}

.search-bar:focus-within {
   border-color: var(--border-brand);
   box-shadow: 0 0 0 4px rgba(108, 99, 255, .15), var(--shadow-brand);
}

.search-bar__icon {
   color: var(--text-tertiary);
}

.search-bar__input {
   flex: 1;
   background: none;
   border: none;
   outline: none;
   color: var(--text-primary);
   font-size: 1rem;
   min-width: 0;
}

.search-bar__input::placeholder {
   color: var(--text-tertiary);
}

.search-bar__btn {
   display: flex;
   align-items: center;
   gap: 8px;
   padding: 12px 24px;
   background: var(--brand-grad);
   color: #fff;
   font-weight: 600;
   font-size: .9rem;
   border-radius: var(--radius-lg);
   white-space: nowrap;
   transition: opacity var(--transition), transform var(--transition);
}

.search-bar__btn:hover {
   opacity: .9;
   transform: translateY(-1px);
}

.search-bar__btn:active {
   transform: translateY(0);
}

.search-bar__btn:disabled {
   opacity: .5;
   cursor: not-allowed;
   transform: none;
}

.hero__hint {
   font-size: .8rem;
   color: var(--text-tertiary);
}

/* QUICK FEATURES */
.quick-features {
   display: flex;
   flex-wrap: wrap;
   gap: 10px;
   justify-content: center;
   margin-top: 8px;
}

.quick-feat {
   display: flex;
   align-items: center;
   gap: 6px;
   padding: 6px 14px;
   background: rgba(255, 255, 255, .04);
   border: 1px solid var(--border);
   border-radius: 999px;
   font-size: .82rem;
   color: var(--text-secondary);
   font-weight: 500;
}

/* ============================================================
   LOADING OVERLAY
   ============================================================ */
.loading-overlay {
   position: fixed;
   inset: 0;
   z-index: 200;
   display: none;
   align-items: center;
   justify-content: center;
   background: rgba(10, 11, 14, .92);
   backdrop-filter: blur(12px);
}

.loading-overlay.active {
   display: flex;
   animation: fadeIn .3s ease;
}

.loading-card {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-xl);
   padding: 48px;
   text-align: center;
   max-width: 440px;
   width: 90%;
   box-shadow: var(--shadow-md);
}

.loading-rings {
   position: relative;
   width: 88px;
   height: 88px;
   margin: 0 auto 28px;
}

.ring {
   position: absolute;
   inset: 0;
   border-radius: 50%;
   border: 3px solid transparent;
}

.ring--1 {
   border-top-color: var(--brand-1);
   animation: spin 1.2s linear infinite;
}

.ring--2 {
   border-right-color: var(--brand-2);
   animation: spin 2s linear infinite reverse;
   margin: 8px;
}

.ring--3 {
   border-bottom-color: rgba(108, 99, 255, .3);
   animation: spin 3s linear infinite;
   margin: 16px;
}

@keyframes spin {
   to {
      transform: rotate(360deg);
   }
}

.loading-title {
   font-size: 1.3rem;
   font-weight: 700;
   margin-bottom: 8px;
}

.loading-msg {
   color: var(--text-secondary);
   font-size: .9rem;
   min-height: 1.4em;
   transition: all .3s ease;
}

.loading-bar-wrap {
   width: 100%;
   height: 4px;
   background: rgba(255, 255, 255, .06);
   border-radius: 2px;
   overflow: hidden;
   margin: 20px 0 16px;
}

.loading-bar {
   height: 100%;
   width: 0%;
   background: var(--brand-grad);
   border-radius: 2px;
   transition: width .4s ease;
}

.loading-checks {
   display: flex;
   flex-direction: column;
   gap: 6px;
   text-align: left;
   max-height: 140px;
   overflow: hidden;
}

.loading-check-item {
   display: flex;
   align-items: center;
   gap: 8px;
   font-size: .8rem;
   color: var(--text-secondary);
   animation: slideUp .3s ease;
}

.loading-check-item.done {
   color: var(--ok);
}

@keyframes slideUp {
   from {
      opacity: 0;
      transform: translateY(8px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

/* ============================================================
   RESULTS SECTION
   ============================================================ */
.results-section {
   padding: 48px 0 80px;
   animation: fadeIn .5s ease;
}

@keyframes fadeIn {
   from {
      opacity: 0;
      transform: translateY(16px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

/* RESULTS HEADER */
.results-header {
   display: flex;
   align-items: flex-start;
   justify-content: space-between;
   gap: 20px;
   margin-bottom: 36px;
   flex-wrap: wrap;
}

.results-title {
   font-size: 1.8rem;
   font-weight: 800;
   letter-spacing: -.03em;
}

.results-url {
   color: var(--brand-1);
   font-size: .9rem;
   margin-top: 4px;
   word-break: break-all;
}

.results-ts {
   color: var(--text-tertiary);
   font-size: .78rem;
   margin-top: 2px;
}

.results-actions {
   display: flex;
   gap: 10px;
   flex-wrap: wrap;
}

.action-btn {
   display: flex;
   align-items: center;
   gap: 7px;
   padding: 9px 18px;
   border-radius: var(--radius-sm);
   font-size: .85rem;
   font-weight: 500;
   transition: all var(--transition);
}

.action-btn--ghost {
   border: 1px solid var(--border);
   color: var(--text-secondary);
}

.action-btn--ghost:hover {
   border-color: var(--border-brand);
   color: var(--text-primary);
   background: rgba(108, 99, 255, .08);
}

.action-btn--primary {
   background: var(--brand-grad);
   color: #fff;
}

.action-btn--primary:hover {
   opacity: .88;
   transform: translateY(-1px);
}

/* SCORE + SUMMARY */
.score-summary {
   display: grid;
   grid-template-columns: auto 1fr auto;
   gap: 24px;
   margin-bottom: 40px;
   align-items: start;
}

.score-card {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   padding: 28px 32px;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 12px;
   min-width: 200px;
}

.score-ring-wrap {
   position: relative;
   width: 120px;
   height: 120px;
}

.score-ring {
   width: 120px;
   height: 120px;
   transform: rotate(-90deg);
}

.score-ring__track {
   fill: none;
   stroke: rgba(255, 255, 255, .06);
   stroke-width: 8;
}

.score-ring__fill {
   fill: none;
   stroke: url(#scoreGrad);
   stroke-width: 8;
   stroke-linecap: round;
   stroke-dasharray: 327;
   stroke-dashoffset: 327;
   transition: stroke-dashoffset 1.2s cubic-bezier(.4, 0, .2, 1);
}

.score-ring__center {
   position: absolute;
   inset: 0;
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
}

.score-number {
   font-size: 2rem;
   font-weight: 800;
   line-height: 1;
   background: var(--brand-grad);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

.score-label {
   font-size: .7rem;
   color: var(--text-tertiary);
   letter-spacing: .08em;
   text-transform: uppercase;
   margin-top: 2px;
}

.score-grade {
   font-size: .9rem;
   font-weight: 600;
   text-align: center;
}

.score-grade.excellent {
   color: var(--ok);
}

.score-grade.good {
   color: var(--brand-2);
}

.score-grade.fair {
   color: var(--warn);
}

.score-grade.poor {
   color: var(--error);
}

.summary-grid {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   padding: 28px;
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 20px;
}

.summary-stat {
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 6px;
}

.stat-icon {
   font-size: 1.5rem;
}

.stat-num {
   font-size: 1.8rem;
   font-weight: 800;
   line-height: 1;
}

.stat-lbl {
   font-size: .75rem;
   color: var(--text-tertiary);
   text-transform: uppercase;
   letter-spacing: .05em;
}

.stat-icon--ok~.stat-num {
   color: var(--ok);
}

.stat-icon--warn~.stat-num {
   color: var(--warn);
}

.stat-icon--error~.stat-num {
   color: var(--error);
}

.stat-icon--info~.stat-num {
   color: var(--info);
}

/* API DATA CARD */
.api-data-card {
   background: var(--bg-card);
   border: 1px solid rgba(91, 140, 247, .3);
   border-radius: var(--radius-lg);
   padding: 20px 24px;
   min-width: 220px;
}

.api-data-title {
   display: flex;
   align-items: center;
   gap: 7px;
   font-size: .85rem;
   font-weight: 600;
   color: var(--info);
   margin-bottom: 14px;
}

.api-data-content {
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.api-data-row {
   display: flex;
   justify-content: space-between;
   align-items: center;
   font-size: .82rem;
   color: var(--text-secondary);
}

.api-data-val {
   font-weight: 600;
   color: var(--text-primary);
}

.api-data-val.ok {
   color: var(--ok);
}

.api-data-val.warn {
   color: var(--warn);
}

.api-data-val.error {
   color: var(--error);
}

/* CATEGORY TABS */
.cat-tabs {
   display: flex;
   gap: 6px;
   flex-wrap: wrap;
   margin-bottom: 28px;
}

.cat-tab {
   padding: 8px 18px;
   border-radius: 999px;
   font-size: .85rem;
   font-weight: 500;
   color: var(--text-secondary);
   border: 1px solid var(--border);
   background: transparent;
   transition: all var(--transition);
}

.cat-tab:hover {
   color: var(--text-primary);
   border-color: var(--border-brand);
}

.cat-tab.active {
   background: var(--brand-grad);
   color: #fff;
   border-color: transparent;
}

/* RESULTS GRID */
.results-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
   gap: 16px;
}

/* RESULT CARD */
.result-card {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   padding: 20px 22px;
   display: flex;
   flex-direction: column;
   gap: 12px;
   transition: all var(--transition);
   position: relative;
   overflow: hidden;
   animation: cardIn .4s ease both;
}

@keyframes cardIn {
   from {
      opacity: 0;
      transform: translateY(12px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

.result-card::before {
   content: '';
   position: absolute;
   inset: 0 0 auto 0;
   height: 3px;
   border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.result-card.status-ok::before {
   background: var(--ok);
}

.result-card.status-warn::before {
   background: var(--warn);
}

.result-card.status-error::before {
   background: var(--error);
}

.result-card.status-info::before {
   background: var(--info);
}

.result-card:hover {
   border-color: rgba(108, 99, 255, .3);
   background: var(--bg-card-hover);
   transform: translateY(-2px);
   box-shadow: var(--shadow-md);
}

.card-header {
   display: flex;
   align-items: center;
   gap: 10px;
}

.card-status-icon {
   font-size: 1.2rem;
   flex-shrink: 0;
}

.card-title {
   font-size: .95rem;
   font-weight: 600;
   flex: 1;
}

.card-cat-badge {
   font-size: .7rem;
   padding: 2px 8px;
   border-radius: 999px;
   font-weight: 500;
   text-transform: uppercase;
   letter-spacing: .05em;
}

.badge-estrutura {
   background: rgba(108, 99, 255, .15);
   color: var(--brand-1);
}

.badge-performance {
   background: rgba(245, 185, 66, .15);
   color: var(--warn);
}

.badge-links {
   background: rgba(0, 212, 168, .15);
   color: var(--brand-2);
}

.badge-social {
   background: rgba(255, 100, 150, .15);
   color: #ff6496;
}

.badge-conteudo {
   background: rgba(91, 140, 247, .15);
   color: var(--info);
}

.card-message {
   font-size: .875rem;
   color: var(--text-primary);
}

.card-detail {
   font-size: .8rem;
   color: var(--text-secondary);
   background: rgba(255, 255, 255, .04);
   border-radius: var(--radius-sm);
   padding: 10px 12px;
   border: 1px solid var(--border);
   line-height: 1.5;
}

.card-detail code {
   font-family: 'Fira Code', monospace;
   font-size: .78rem;
   color: var(--brand-1);
   background: rgba(108, 99, 255, .12);
   padding: 1px 5px;
   border-radius: 3px;
}

.card-detail strong {
   color: var(--text-primary);
}

/* ============================================================
   FEATURES SECTION
   ============================================================ */
.features-section {
   padding: 100px 0;
   border-top: 1px solid var(--border);
}

.section-header {
   text-align: center;
   margin-bottom: 56px;
}

.section-title {
   font-size: clamp(1.6rem, 3vw, 2.4rem);
   font-weight: 800;
   letter-spacing: -.03em;
}

.section-sub {
   color: var(--text-secondary);
   margin-top: 10px;
   font-size: 1rem;
}

.features-grid {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
   gap: 20px;
}

.feature-card {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   padding: 28px;
   transition: all var(--transition);
}

.feature-card:hover {
   border-color: var(--border-brand);
   background: var(--bg-card-hover);
   transform: translateY(-3px);
   box-shadow: var(--shadow-brand);
}

.fc-icon {
   font-size: 2rem;
   margin-bottom: 14px;
}

.feature-card h3 {
   font-size: 1rem;
   font-weight: 700;
   margin-bottom: 8px;
}

.feature-card p {
   font-size: .875rem;
   color: var(--text-secondary);
   line-height: 1.6;
}

/* ============================================================
   HOW IT WORKS
   ============================================================ */
.howto-section {
   padding: 80px 0 100px;
}

.steps {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 24px;
   flex-wrap: wrap;
}

.step {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-lg);
   padding: 32px;
   max-width: 280px;
   text-align: center;
}

.step-num {
   width: 48px;
   height: 48px;
   border-radius: 50%;
   background: var(--brand-grad);
   display: flex;
   align-items: center;
   justify-content: center;
   font-weight: 800;
   font-size: 1.1rem;
   margin: 0 auto 16px;
}

.step h3 {
   font-size: 1rem;
   font-weight: 700;
   margin-bottom: 8px;
}

.step p {
   font-size: .875rem;
   color: var(--text-secondary);
}

.step-arrow {
   font-size: 1.5rem;
   color: var(--text-tertiary);
}

/* ============================================================
   HISTORY SIDEBAR
   ============================================================ */
.sidebar-overlay {
   position: fixed;
   inset: 0;
   background: rgba(0, 0, 0, .6);
   z-index: 299;
   opacity: 0;
   pointer-events: none;
   transition: opacity .3s ease;
   backdrop-filter: blur(4px);
}

.sidebar-overlay.active {
   opacity: 1;
   pointer-events: auto;
}

.history-sidebar {
   position: fixed;
   top: 0;
   right: -360px;
   width: 340px;
   height: 100vh;
   z-index: 300;
   background: var(--bg-surface);
   border-left: 1px solid var(--border);
   display: flex;
   flex-direction: column;
   transition: right .35s cubic-bezier(.4, 0, .2, 1);
}

.history-sidebar.open {
   right: 0;
}

.history-sidebar__header {
   display: flex;
   align-items: center;
   justify-content: space-between;
   padding: 20px 24px;
   border-bottom: 1px solid var(--border);
}

.history-sidebar__title {
   font-size: 1.1rem;
   font-weight: 700;
}

.history-close {
   font-size: 1.1rem;
   color: var(--text-tertiary);
   padding: 4px 8px;
   border-radius: var(--radius-sm);
   transition: all var(--transition);
}

.history-close:hover {
   color: var(--text-primary);
   background: rgba(255, 255, 255, .06);
}

.history-list {
   flex: 1;
   overflow-y: auto;
   padding: 16px;
   display: flex;
   flex-direction: column;
   gap: 8px;
}

.history-item {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-md);
   padding: 14px 16px;
   cursor: pointer;
   transition: all var(--transition);
   display: flex;
   flex-direction: column;
   gap: 4px;
}

.history-item:hover {
   border-color: var(--border-brand);
   background: var(--bg-card-hover);
}

.hi-url {
   font-size: .85rem;
   font-weight: 600;
   word-break: break-all;
   color: var(--text-primary);
}

.hi-meta {
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.hi-score {
   font-size: .8rem;
   font-weight: 700;
   color: var(--brand-1);
}

.hi-date {
   font-size: .75rem;
   color: var(--text-tertiary);
}

.history-empty {
   text-align: center;
   padding: 40px 20px;
   color: var(--text-tertiary);
   font-size: .875rem;
}

.history-footer {
   padding: 16px 24px;
   border-top: 1px solid var(--border);
}

.clear-btn {
   width: 100%;
   padding: 10px;
   border: 1px solid rgba(255, 77, 106, .3);
   border-radius: var(--radius-sm);
   color: var(--error);
   font-size: .875rem;
   font-weight: 500;
   transition: all var(--transition);
}

.clear-btn:hover {
   background: var(--error-bg);
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
   border-top: 1px solid var(--border);
   padding: 32px 0;
}

.footer__inner {
   display: flex;
   align-items: center;
   justify-content: space-between;
   flex-wrap: wrap;
   gap: 16px;
}

.footer__copy {
   font-size: .82rem;
   color: var(--text-tertiary);
}

/* ============================================================
   SCORE GRADIENT (inline SVG def)
   ============================================================ */
.score-grad-defs {
   position: absolute;
   width: 0;
   height: 0;
   overflow: hidden;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 900px) {
   .score-summary {
      grid-template-columns: 1fr 1fr;
   }

   .api-data-card {
      grid-column: 1 / -1;
   }

   .nav__links {
      gap: 4px;
   }

   .nav__link {
      display: none;
   }
}

@media (max-width: 640px) {
   .hero {
      padding: 32px 20px;
   }

   .search-bar {
      flex-direction: column;
      padding: 14px;
      border-radius: var(--radius-lg);
   }

   .search-bar__btn {
      width: 100%;
      justify-content: center;
   }

   .search-bar__icon {
      display: none;
   }

   .score-summary {
      grid-template-columns: 1fr;
   }

   .score-card {
      flex-direction: row;
      gap: 20px;
   }

   .results-header {
      flex-direction: column;
   }

   .results-actions {
      width: 100%;
      justify-content: flex-start;
   }

   .steps {
      flex-direction: column;
   }

   .step-arrow {
      transform: rotate(90deg);
   }

   .results-grid {
      grid-template-columns: 1fr;
   }

   .history-sidebar {
      width: 100%;
      right: -100%;
   }
}

/* ============================================================
   CONTACT SECTION
   ============================================================ */
.contact-section {
   padding: 100px 0;
   border-top: 1px solid var(--border);
}

.contact-wrapper {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 48px;
   align-items: start;
}

/* Contact Info */
.contact-info {
   display: flex;
   flex-direction: column;
   gap: 28px;
}

.contact-info-item {
   display: flex;
   align-items: flex-start;
   gap: 16px;
}

.ci-icon {
   font-size: 1.8rem;
   flex-shrink: 0;
   margin-top: 2px;
}

.contact-info-item h3 {
   font-size: .95rem;
   font-weight: 700;
   margin-bottom: 6px;
}

.contact-info-item p {
   font-size: .875rem;
   color: var(--text-secondary);
   line-height: 1.6;
}

/* Contact Form */
.contact-form {
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-xl);
   padding: 36px;
   display: flex;
   flex-direction: column;
   gap: 20px;
}

.cf-row {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 16px;
}

.cf-group {
   display: flex;
   flex-direction: column;
   gap: 7px;
}

.cf-label {
   font-size: .82rem;
   font-weight: 600;
   color: var(--text-secondary);
   letter-spacing: .02em;
}

.cf-required {
   color: var(--error);
}

.cf-input,
.cf-textarea {
   background: var(--bg-input);
   border: 1px solid var(--border);
   border-radius: var(--radius-md);
   padding: 12px 16px;
   color: var(--text-primary);
   font-size: .9rem;
   font-family: var(--font);
   outline: none;
   transition: border-color var(--transition), box-shadow var(--transition);
}

.cf-input:focus,
.cf-textarea:focus {
   border-color: var(--border-brand);
   box-shadow: 0 0 0 3px rgba(108, 99, 255, .12);
}

.cf-input::placeholder,
.cf-textarea::placeholder {
   color: var(--text-tertiary);
}

.cf-input.invalid,
.cf-textarea.invalid {
   border-color: var(--error);
   box-shadow: 0 0 0 3px rgba(255, 77, 106, .12);
}

.cf-textarea {
   resize: vertical;
   min-height: 120px;
}

/* Feedback */
.cf-feedback {
   font-size: .85rem;
   padding: 0;
   min-height: 0;
   transition: all .3s ease;
}

.cf-feedback.success {
   color: var(--ok);
   background: var(--ok-bg);
   border: 1px solid rgba(0, 212, 138, .25);
   border-radius: var(--radius-sm);
   padding: 12px 16px;
}

.cf-feedback.error {
   color: var(--error);
   background: var(--error-bg);
   border: 1px solid rgba(255, 77, 106, .25);
   border-radius: var(--radius-sm);
   padding: 12px 16px;
}

/* Submit Button */
.contact-submit-btn {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 10px;
   width: 100%;
   padding: 14px 24px;
   background: var(--brand-grad);
   color: #fff;
   font-size: .95rem;
   font-weight: 700;
   border-radius: var(--radius-md);
   border: none;
   cursor: pointer;
   transition: opacity var(--transition), transform var(--transition);
   position: relative;
}

.contact-submit-btn:hover:not(:disabled) {
   opacity: .88;
   transform: translateY(-1px);
}

.contact-submit-btn:active:not(:disabled) {
   transform: translateY(0);
}

.contact-submit-btn:disabled {
   opacity: .55;
   cursor: not-allowed;
   transform: none;
}

/* Spinner inside button */
.csb-spinner {
   display: none;
   width: 18px;
   height: 18px;
   border: 2px solid rgba(255, 255, 255, .3);
   border-top-color: #fff;
   border-radius: 50%;
   animation: spin 0.7s linear infinite;
}

.contact-submit-btn.loading .csb-spinner {
   display: block;
}

.contact-submit-btn.loading .csb-text,
.contact-submit-btn.loading svg {
   display: none;
}

/* Responsive */
@media (max-width: 900px) {
   .contact-wrapper {
      grid-template-columns: 1fr;
   }

   .contact-info {
      order: 2;
   }

   .contact-form {
      order: 1;
   }
}

@media (max-width: 600px) {
   .cf-row {
      grid-template-columns: 1fr;
   }

   .contact-form {
      padding: 24px;
   }
}

/* ============================================================
   PRINT / PDF EXPORT
   ============================================================ */
@media print {

   .header,
   .hero,
   .features-section,
   .howto-section,
   .footer,
   .results-actions,
   .cat-tabs,
   #historySidebar,
   .sidebar-overlay {
      display: none !important;
   }

   body {
      background: #fff;
      color: #111;
   }

   .results-section {
      padding: 0;
   }

   .result-card {
      break-inside: avoid;
      border: 1px solid #ddd;
      box-shadow: none;
   }

   .score-summary {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
   }
}

/* ============================================================
   ANIMATIONS
   ============================================================ */
@keyframes fadeIn {
   from {
      opacity: 0;
      transform: translateY(12px)
   }

   to {
      opacity: 1;
      transform: translateY(0)
   }
}

/* ============================================================
   CTA MODAL
   ============================================================ */
.modal-overlay {
   position: fixed;
   inset: 0;
   z-index: 10000;
   /* Extremely high z-index to stay on top */
   display: none;
   align-items: center;
   justify-content: center;
   background: rgba(10, 11, 14, 0.9);
   backdrop-filter: blur(10px);
   opacity: 0;
   transition: opacity 0.3s ease;
}

.modal-overlay.active {
   display: flex;
   opacity: 1;
}

.modal-card {
   position: relative;
   background: var(--bg-card);
   border: 1px solid var(--border);
   border-radius: var(--radius-xl);
   padding: 40px;
   text-align: center;
   max-width: 420px;
   width: 90%;
   box-shadow: 0 20px 50px rgba(0, 0, 0, 0.6), 0 0 30px rgba(108, 99, 255, 0.2);
   transform: translateY(30px) scale(0.9);
   transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.modal-overlay.active .modal-card {
   transform: translateY(0) scale(1);
}

.modal-close {
   position: absolute;
   top: 16px;
   right: 16px;
   background: rgba(255, 255, 255, 0.05);
   border-radius: 50%;
   width: 32px;
   height: 32px;
   display: flex;
   align-items: center;
   justify-content: center;
   color: var(--text-secondary);
   font-size: 14px;
   transition: all var(--transition);
}

.modal-close:hover {
   background: rgba(255, 255, 255, 0.1);
   color: var(--text-primary);
}

.modal-icon {
   font-size: 3.5rem;
   margin-bottom: 20px;
   display: block;
}

.modal-title {
   font-size: 1.5rem;
   font-weight: 800;
   margin-bottom: 12px;
   color: var(--text-primary);
   line-height: 1.2;
}

.modal-text {
   font-size: 0.95rem;
   color: var(--text-secondary);
   margin-bottom: 32px;
   line-height: 1.5;
}

.modal-actions {
   display: flex;
   flex-direction: column;
   gap: 10px;
}

@media (max-width: 480px) {
   .modal-card {
      padding: 32px 24px;
   }

   .modal-title {
      font-size: 1.3rem;
   }
}