/* AstroSaathi astrology tools: horoscope, panchang, kundli, matching. Tokens: as-ui.css. */

/* ============================================================ SIGN GRID */
.as-zodiac-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: clamp(10px, 1.6vw, 18px);
}

.as-zcard {
    display: grid;
    justify-items: center;
    gap: 6px;
    padding: 18px 10px 16px;
    border-radius: var(--as-radius-lg);
    background: var(--as-surface);
    border: 1px solid var(--as-border);
    box-shadow: var(--as-shadow);
    text-decoration: none !important;
    text-align: center;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.as-zcard:hover,
.as-zcard.is-active { transform: translateY(-3px); border-color: var(--as-primary); box-shadow: var(--as-shadow-lg); }
.as-zcard.is-active { background: var(--as-primary-soft); }

.as-zcard__img {
    width: clamp(64px, 8vw, 92px);
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    object-fit: cover;
    background: radial-gradient(circle at 35% 30%, #fff3d0, #ffd27a);
    box-shadow: 0 10px 24px -14px rgba(255, 140, 0, .8);
}

:root[data-theme="dark"] .as-zcard__img { background: radial-gradient(circle at 35% 30%, #3a2f1a, #1c160d); }
.as-zcard strong { font-family: var(--as-font-head); font-size: 1.02rem; color: var(--as-text); }
.as-zcard small { color: var(--as-muted); font-size: .76rem; }

@media (max-width: 900px) { .as-zodiac-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 560px) { .as-zodiac-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* A row of small sign chips (scrolls on phones). */
.as-sign-strip {
    display: flex;
    gap: 10px;
    overflow-x: auto;
    padding: 4px 2px 10px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.as-sign-strip a {
    flex: none;
    display: grid;
    justify-items: center;
    gap: 4px;
    width: 76px;
    padding: 8px 4px;
    border-radius: 14px;
    border: 1px solid var(--as-border);
    background: var(--as-surface);
    text-decoration: none !important;
    scroll-snap-align: start;
}

.as-sign-strip a img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.as-sign-strip a span { font-size: .74rem; font-weight: 600; color: var(--as-text-2); }
.as-sign-strip a.is-active { border-color: var(--as-primary); background: var(--as-primary-soft); }

/* ================================================================= TABS */
.as-tabs {
    display: inline-flex;
    gap: 6px;
    padding: 5px;
    border-radius: var(--as-pill);
    background: var(--as-surface);
    border: 1px solid var(--as-border);
    box-shadow: var(--as-shadow-sm);
}

.as-tabs button {
    min-height: 40px;
    padding: 0 18px;
    border: 0;
    border-radius: var(--as-pill);
    background: transparent;
    color: var(--as-text-2);
    font-family: var(--as-font-head);
    font-weight: 700;
    font-size: .92rem;
    cursor: pointer;
}

.as-tabs button[aria-selected="true"] { background: var(--as-btn-grad); color: var(--as-primary-ink); box-shadow: var(--as-btn-glow); }
/* Three date buttons (panchang) fit a 360 px phone. */
@media (max-width: 400px) {
    .as-tabs { max-width: 100%; gap: 4px; }
    .as-tabs .as-btn { padding-inline: 10px; }
}
.as-tabpanel[hidden] { display: none !important; }

/* ======================================================== HOROSCOPE VIEW */
.as-horo-view {
    display: grid;
    grid-template-columns: 320px minmax(0, 1fr);
    gap: clamp(16px, 2.6vw, 28px);
    align-items: start;
}

.as-sign-card {
    position: -webkit-sticky;
    position: sticky;
    top: calc(var(--as-header-h) + 18px);
    text-align: center;
    padding: 24px 20px;
    background:
        radial-gradient(260px 200px at 50% 0%, rgba(255, 186, 73, .22), transparent 70%),
        var(--as-surface);
}

.as-sign-card img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; margin: 0 auto 12px; display: block; box-shadow: 0 16px 40px -18px rgba(255, 140, 0, .9); }
.as-sign-card h2 { font-size: 1.5rem; }
.as-sign-card p { margin: 6px 0 0; color: var(--as-muted); font-size: .9rem; }
.as-lucky { display: grid; gap: 10px; margin-top: 18px; text-align: left; }
.as-lucky div { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; background: var(--as-surface-2); border: 1px solid var(--as-border); }
.as-lucky i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--as-primary-soft); color: var(--as-primary-2); flex: none; }
.as-lucky small { display: block; color: var(--as-muted); font-size: .74rem; }
.as-lucky .val { font-weight: 700; color: var(--as-text); }

.as-reading { padding: clamp(18px, 2.6vw, 28px); }
.as-reading h3 { font-size: 1.2rem; display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.as-reading h3 i { color: var(--as-primary-2); }
.as-reading > p { color: var(--as-text-2); line-height: 1.75; margin: 0; }
.as-areas-list { display: grid; gap: 12px; margin-top: 16px; }
.as-area-row { padding: 14px 16px; border-radius: 14px; background: var(--as-surface-2); border: 1px solid var(--as-border); }
.as-area-row__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.as-area-row__head h4 { font-size: 1rem; display: flex; align-items: center; gap: 10px; }
.as-area-row__head h4 i { width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--as-primary-soft); color: var(--as-primary-2); font-size: .85rem; }
.as-area-row__score { font-weight: 800; color: var(--as-hl); font-family: var(--as-font-head); }
.as-area-row p { margin: 8px 0 0; color: var(--as-text-2); font-size: .94rem; line-height: 1.7; }
.as-bar { height: 8px; border-radius: 8px; background: var(--as-surface-3); overflow: hidden; margin-top: 10px; }
.as-bar span { display: block; height: 100%; border-radius: inherit; background: var(--as-hl-grad); }

@media (max-width: 900px) {
    .as-horo-view { grid-template-columns: minmax(0, 1fr); }
    .as-sign-card { position: static; }
    .as-sign-card img { width: 110px; height: 110px; }
}

/* ================================================================== INFO */
.as-info {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: clamp(18px, 3vw, 40px);
    align-items: center;
    padding: clamp(18px, 3vw, 36px);
    background:
        radial-gradient(420px 260px at 0% 0%, rgba(139, 92, 246, .12), transparent 70%),
        var(--as-surface);
}

.as-info__art { border-radius: var(--as-radius-lg); overflow: hidden; aspect-ratio: 1 / 1; max-width: 380px; width: 100%; justify-self: center; }
.as-info__art img { width: 100%; height: 100%; object-fit: cover; }
.as-info .as-prose p { margin-bottom: 10px; }

@media (max-width: 860px) {
    .as-info { grid-template-columns: minmax(0, 1fr); }
    .as-info__art { max-width: 280px; }
}

/* the "Ask an astrologer" banner */
.as-banner {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 20px;
    padding: clamp(22px, 3.4vw, 40px);
    border-radius: var(--as-radius-xl);
    background:
        radial-gradient(500px 260px at 100% 50%, rgba(255, 140, 30, .28), transparent 70%),
        linear-gradient(120deg, var(--as-surface-2), var(--as-surface-3));
    border: 1px solid var(--as-border);
}

.as-banner h2 { font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2.1rem); font-weight: 800; letter-spacing: -.01em; text-transform: uppercase; }
.as-banner p { margin: 8px 0 0; color: var(--as-text-2); }
.as-banner .as-wheel { position: absolute; right: -80px; top: 50%; width: 360px; margin-top: -180px; opacity: .45; z-index: -1; }

@media (max-width: 700px) {
    .as-banner { grid-template-columns: minmax(0, 1fr); text-align: center; }
}

/* ============================================================== FORMS */
.as-formcard { padding: clamp(18px, 3vw, 32px); }
.as-formcard__head { display: flex; gap: 14px; align-items: center; margin-bottom: 18px; }
.as-formcard__head .as-icon-tile { border-radius: 14px; }
.as-formcard__head h2 { font-size: clamp(1.2rem, 1rem + .8vw, 1.6rem); }
.as-formcard__head p { margin: 4px 0 0; color: var(--as-muted); font-size: .9rem; }
.as-fgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; }
.as-fgrid .as-span2 { grid-column: 1 / -1; }
.as-seg { display: flex; flex-wrap: wrap; gap: 8px; }
/* margin 0: Bootstrap's label margin lifted the pills 8px above the field beside them */
.as-seg label { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0; padding: 0 14px; border-radius: 12px; border: 1px solid var(--as-border-2); background: var(--as-surface); cursor: pointer; font-weight: 600; font-size: .9rem; color: var(--as-text-2); }
.as-seg input { accent-color: var(--as-violet); width: 16px; height: 16px; }
.as-seg label:has(input:checked) { border-color: var(--as-primary); background: var(--as-primary-soft); color: var(--as-text); }
.as-hint { font-size: .8rem; color: var(--as-muted); }
.as-err-text { font-size: .8rem; color: var(--as-danger); min-height: 1em; }

@media (max-width: 640px) {
    .as-fgrid { grid-template-columns: minmax(0, 1fr); }
}

/* steps */
.as-steps { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 14px; counter-reset: step; }
.as-step { position: relative; text-align: center; padding: 22px 14px 18px; counter-increment: step; }
.as-step::before {
    content: counter(step, decimal-leading-zero);
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    min-width: 30px;
    height: 24px;
    padding: 0 8px;
    border-radius: 12px;
    background: var(--as-btn-grad);
    color: var(--as-primary-ink);
    font-weight: 800;
    font-size: .75rem;
    line-height: 24px;
}
.as-step .as-icon-tile { margin: 4px auto 10px; border-radius: 50%; }
.as-step h3 { font-size: .98rem; margin-bottom: 4px; }
.as-step p { margin: 0; font-size: .84rem; color: var(--as-muted); }

@media (max-width: 900px) { .as-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 26px; } }
@media (max-width: 480px) { .as-steps { grid-template-columns: minmax(0, 1fr); } }

/* Rows of --n equal cards; a short last row is centred (five panchang elements on a phone: 2, 2, then 1 in the middle). */
.as-features { --cols: var(--n, 6); display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.as-features > * { flex: 0 0 calc((100% - (var(--cols) - 1) * 12px) / var(--cols)); min-width: 0; box-sizing: border-box; }
.as-feature { text-align: center; padding: 18px 10px; }
.as-feature i { font-size: 1.6rem; color: var(--as-hl); }
.as-feature h3 { font-size: .9rem; margin-top: 10px; }

@media (max-width: 900px) { .as-features { --cols: 3; } }
@media (max-width: 480px) { .as-features { --cols: 2; } }

/* data tables (planets, panchang) */
.as-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.as-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.as-table th,
.as-table td { padding: 10px 12px; border-bottom: 1px solid var(--as-border); text-align: left; color: var(--as-text-2); }
.as-table th { font-family: var(--as-font-head); font-weight: 700; color: var(--as-text); background: var(--as-surface-2); }
.as-table tr:last-child td { border-bottom: 0; }

.as-kv { display: grid; gap: 0; }
.as-kv > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 2px; border-bottom: 1px dashed var(--as-border); font-size: .92rem; }
.as-kv > div:last-child { border-bottom: 0; }
.as-kv span:first-child { color: var(--as-muted); display: inline-flex; align-items: center; gap: 10px; }
.as-kv span:first-child i { color: var(--as-primary-2); width: 18px; text-align: center; }
.as-kv span:last-child { color: var(--as-text); font-weight: 600; text-align: right; }

/* the panchang's date and place card */
.as-panhead { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 18px; align-items: center; }
@media (max-width: 820px) { .as-panhead { grid-template-columns: minmax(0, 1fr); } }
.as-feature .as-icon-tile { display: flex; }
.as-feature small { display: block; }
.as-feature .as-icon-tile i { color: #fff; font-size: 1.2rem; }

/* ===================================================== KUNDLI / MATCHING */
.as-kgrid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(16px, 2.6vw, 28px); align-items: start; }
.as-saved { padding: 18px; position: -webkit-sticky; position: sticky; top: calc(var(--as-header-h) + 18px); }
.as-saved__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.as-saved__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 460px; overflow-y: auto; }
.as-saved__item { display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 12px; border: 1px solid var(--as-border); background: var(--as-surface-2); text-decoration: none !important; }
.as-saved__item:hover { border-color: var(--as-primary); }
.as-saved__item .as-initials { width: 40px; height: 40px; font-size: .95rem; }
.as-saved__item strong { display: block; color: var(--as-text); font-size: .92rem; }
.as-saved__item small { display: block; color: var(--as-muted); font-size: .76rem; line-height: 1.4; }
.as-saved__item > i { margin-left: auto; color: var(--as-muted); }
.as-person { padding: clamp(16px, 2.4vw, 24px); border-radius: var(--as-radius-lg); border: 1px solid var(--as-border); background: var(--as-surface-2); }
.as-person h3 { display: flex; align-items: center; gap: 10px; font-size: 1.1rem; margin-bottom: 14px; }
.as-person h3 i { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-size: .9rem; }
.as-person--boy h3 i { background: #2f7bf6; }
.as-person--girl h3 i { background: #ec4899; }
.as-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; position: relative; }
.as-pair__heart { position: absolute; left: 50%; top: 22px; transform: translateX(-50%); width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--as-btn-grad); color: var(--as-primary-ink); box-shadow: var(--as-btn-glow); z-index: 1; }

@media (max-width: 1000px) {
    .as-kgrid { grid-template-columns: minmax(0, 1fr); }
    .as-saved { position: static; }
}

@media (max-width: 760px) {
    .as-pair { grid-template-columns: minmax(0, 1fr); }
    .as-pair__heart { position: static; transform: none; margin: -4px auto; }
}
