/* Home page — token-driven, theme-aware. See docs/DESIGN_SYSTEM.md */

/* ── Hero north-star ── */
.home-hero {
    background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-2) 100%);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    color: var(--color-on-brand);
    margin-bottom: 1.25rem;
}

.home-hero h1 { font-size: var(--fs-2xl); font-weight: var(--fw-black); margin-bottom: .35rem; line-height: 1.25; }
.home-hero p { opacity: .85; margin-bottom: 1rem; font-size: var(--fs-md); }

.home-hero-eyebrow {
    font-size: var(--fs-xs);
    font-weight: var(--fw-medium);
    opacity: .75;
    margin-bottom: .75rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.home-hero-kpis {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    align-items: flex-end;
}

.home-hero-kpi {
    display: flex;
    flex-direction: column;
    gap: .1rem;
}

.home-hero-kpi-label { font-size: var(--fs-xs); opacity: .75; }
.home-hero-kpi-value { font-size: 1.6rem; font-weight: var(--fw-black); line-height: 1.1; }
.home-hero-kpi-unit  { font-size: var(--fs-xs); opacity: .65; }

/* ── ابزارها گرید ── */
.home-tools-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .65rem;
}

@media (min-width: 768px) {
    .home-tools-grid { grid-template-columns: repeat(4, 1fr); }
}

.home-section-title {
    font-size: var(--fs-lg);
    font-weight: var(--fw-black);
    margin: 1.25rem 0 .75rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    color: var(--color-text-1);
}
.home-section-title i { color: var(--color-primary); }

.metric-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .75rem;
}

.city-grid { display: grid; grid-template-columns: 1fr; gap: .75rem; }

@media (min-width: 768px) {
    .metric-grid { grid-template-columns: repeat(4, 1fr); }
    .city-grid { grid-template-columns: repeat(3, 1fr); }
}

.metric-card, .city-card, .tool-card, .content-card-mini {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: 1rem;
    box-shadow: var(--shadow-sm);
}

.metric-card .card-value {
    font-size: 1.1rem;
    font-weight: var(--fw-black);
    margin-top: .25rem;
    color: var(--color-text-1);
}

.card-freshness { font-size: var(--fs-xs); margin-top: .35rem; color: var(--color-text-3); }

.city-card h3 { font-size: .95rem; font-weight: var(--fw-black); margin-bottom: .5rem; color: var(--color-text-1); }
.city-stat { display: flex; justify-content: space-between; font-size: var(--fs-sm); padding: .2rem 0; color: var(--color-text-2); }
.city-stat .val { font-weight: var(--fw-bold); color: var(--color-text-1); }

/* Sparkline (renders only when data present) */
.spark {
    display: block;
    width: 100%;
    height: 28px;
    margin-top: .5rem;
    overflow: visible;
}
.spark path { fill: none; stroke: var(--color-primary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.spark .spark-area { fill: var(--color-primary-soft); stroke: none; opacity: .7; }

.tool-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-decoration: none;
    color: var(--color-text-1);
    transition: transform .15s, box-shadow .15s, border-color .15s;
}

.tool-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--color-border-strong); }
.tool-card.locked { opacity: .85; }

.content-card-mini {
    color: var(--color-text-1);
    transition: transform .15s, box-shadow .15s;
}
.content-card-mini:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

.content-card-mini img {
    width: 100%;
    height: 120px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    margin-bottom: .6rem;
    background: var(--color-surface-2);
}

.hic-card {
    display: block;
    padding: 1rem;
    border-radius: var(--radius-md);
    text-decoration: none;
    color: var(--color-on-brand);
    background: linear-gradient(135deg, var(--color-brand-2), var(--color-brand));
    transition: transform .15s, box-shadow .15s;
}
.hic-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); color: var(--color-on-brand); }

.home-cta-bottom {
    background: var(--color-surface-2);
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-lg);
    padding: 1.25rem;
    text-align: center;
    margin-top: 1.5rem;
}

.btn-home-cta {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--color-primary);
    color: var(--color-on-primary);
    border-radius: var(--radius-pill);
    padding: .6rem 1.35rem;
    text-decoration: none;
    font-weight: var(--fw-bold);
    font-size: var(--fs-sm);
    transition: background var(--transition), transform var(--transition);
}

.btn-home-cta:hover { background: var(--color-primary-hover); color: var(--color-on-primary); transform: translateY(-1px); }

.btn-home-cta-outline {
    background: transparent;
    color: var(--color-primary);
    border: 1.5px solid var(--color-primary);
}

.btn-home-cta-outline:hover {
    background: var(--color-primary-soft);
    color: var(--color-primary);
}

.home-intel-paths {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.home-intel-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .55rem .9rem;
    border-radius: var(--radius-pill);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-text-1);
    text-decoration: none;
    font-size: var(--fs-sm);
    font-weight: var(--fw-bold);
    transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
}

.home-intel-link:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
    transform: translateY(-1px);
    color: var(--color-text-1);
}

.home-intel-link i { color: var(--color-primary); font-size: .85rem; }

.home-scope-form {
    background: rgba(255, 255, 255, .08);
    border-radius: var(--radius-md);
    padding: .85rem;
    margin-top: .5rem;
}

.home-scope-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
}

@media (min-width: 768px) {
    .home-scope-grid { grid-template-columns: repeat(4, 1fr); align-items: end; }
}

.home-scope-label {
    display: block;
    font-size: var(--fs-xs);
    margin-bottom: .25rem;
    opacity: .9;
}

.home-scope-active {
    font-size: var(--fs-xs);
    margin-top: .55rem;
    opacity: .85;
}

.home-section-link {
    text-align: left;
    margin: -.35rem 0 1rem;
    font-size: var(--fs-sm);
}

.home-opp-list {
    display: flex;
    flex-direction: column;
    gap: .5rem;
}

.home-opp-row {
    display: grid;
    grid-template-columns: 2rem 1fr auto;
    gap: .65rem;
    align-items: center;
    padding: .75rem 1rem;
    border-radius: var(--radius-md);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    text-decoration: none;
    color: var(--color-text-1);
    transition: border-color var(--transition), box-shadow var(--transition);
}

.home-opp-row:hover {
    border-color: var(--color-primary);
    box-shadow: var(--shadow-sm);
}

.home-opp-rank {
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--color-primary-soft);
    color: var(--color-primary);
    display: grid;
    place-items: center;
    font-weight: var(--fw-black);
    font-size: var(--fs-sm);
}

.home-opp-score {
    font-weight: var(--fw-bold);
    color: var(--color-primary);
}

/* Guest teaser: reveal data but dim + lock note instead of unreadable blur */
.metric-grid.is-teaser { position: relative; }
.metric-grid.is-teaser .metric-card,
.city-grid.is-teaser .city-card { opacity: .92; }
