#econcal-index {
    max-width: 100%;
    --ec-navy: #12225c;
    --ec-navy-deep: #0b1220;
    --ec-blue: #1e4ed8;
    --ec-red: #c45c65;
    --ec-amber: #c4922a;
    --ec-green: #0f9f6e;
    --ec-gold: #d4a017;
    --ec-ink: #1c2536;
    --ec-muted: #5b6576;
    --ec-line: #e2e6ee;
    --ec-soft: #f4f6fa;
    --ec-white: #fff;
    --ec-space: 36px;
    --ec-inset: 20px;
    --ec-gap: 16px;
    color: var(--ec-ink);
    background: var(--ec-soft);
}

#econcal-index .ec-hero,
#econcal-index .ec-main,
#econcal-index .ec-geo-band,
#econcal-index .ec-related-band,
#econcal-index .ec-faq-band {
    padding: var(--ec-space) 0;
}

/* ── Hero: same language as calculator / licensed-broker tools ── */
#econcal-index .ec-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(ellipse 80% 120% at 100% 0%, rgba(15, 159, 110, .18), transparent 55%),
        radial-gradient(ellipse 50% 80% at 0% 100%, rgba(18, 34, 92, .4), transparent 50%),
        linear-gradient(135deg, #0b1220 0%, #12225c 48%, #0f3d36 100%);
    border-bottom: 0;
}

#econcal-index .ec-hero::after {
    position: absolute;
    inset: auto 0 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(212, 160, 23, .45), transparent);
    content: "";
}

#econcal-index .ec-hero > .container {
    position: relative;
    z-index: 1;
}

.ec-crumb {
    margin-bottom: 18px;
}

.ec-crumb .breadcrumb-item a {
    color: rgba(255, 255, 255, .72);
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none;
}

.ec-crumb .breadcrumb-item a:hover { color: #fff; }
.ec-crumb .breadcrumb-item.active { color: #a7f3d0 !important; font-weight: 600; }
.ec-crumb .breadcrumb-item + .breadcrumb-item::before { color: rgba(255, 255, 255, .35); }

.ec-hero-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 28px;
    align-items: stretch;
}

.ec-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 5px 12px 5px 10px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 999px;
    color: #a7f3d0;
    background: rgba(255, 255, 255, .08);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ec-live-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #34d399;
    box-shadow: 0 0 0 4px rgba(52, 211, 153, .18);
}

.ec-hero-title {
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(1.75rem, 4vw, 2.45rem);
    font-weight: 800;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.ec-hero-lead {
    max-width: 40rem;
    margin: 0 0 18px;
    color: rgba(226, 232, 240, .9);
    font-size: 1.05rem;
    font-weight: 450;
    line-height: 1.65;
}

.ec-hero-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 14px 0 0;
    border-top: 1px solid rgba(255, 255, 255, .12);
    list-style: none;
}

.ec-hero-chips li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 18px 2px 0;
    color: rgba(248, 250, 252, .9);
    font-size: .82rem;
    font-weight: 600;
}

.ec-hero-chips li + li {
    padding-inline-start: 18px;
    border-inline-start: 1px solid rgba(255, 255, 255, .12);
}

.ec-hero-chips svg {
    width: 15px;
    height: 15px;
    color: #6ee7b7;
}

.ec-focus {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: 16px;
    color: var(--ec-ink);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .98), #f7faf8);
    box-shadow: 0 18px 40px rgba(0, 0, 0, .22);
    text-decoration: none;
}

.ec-focus:hover {
    color: var(--ec-ink);
}

.ec-focus-kicker {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ec-green);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ec-focus-cur {
    color: var(--ec-navy);
    font-size: .9rem;
}

.ec-focus-title {
    color: var(--ec-navy);
    font-size: 1.05rem;
    font-weight: 800;
    line-height: 1.35;
}

.ec-focus-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    margin-top: auto;
    padding-top: 10px;
    color: var(--ec-muted);
    font-size: .8rem;
    font-weight: 650;
}

.ec-focus-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ec-focus-meta svg {
    width: 14px;
    height: 14px;
    color: var(--ec-green);
}

/* ── Main band ── */
.ec-main {
    background: var(--ec-soft);
    scroll-margin-top: 76px;
}

.ec-main-inner {
    display: grid;
    min-width: 0;
    gap: var(--ec-gap);
}

#econcal-index .ec-main .aio-quick-answer {
    margin: 0;
    padding: 16px var(--ec-inset);
    border: 1px solid rgba(15, 159, 110, .18);
    border-radius: 14px;
    background: linear-gradient(105deg, #ecfdf5 0%, #fff 62%);
}

#econcal-index .ec-main .aio-quick-answer-header {
    color: #065f46;
    text-transform: none;
    letter-spacing: 0;
}

.ec-workspace {
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    border: 1px solid var(--ec-line);
    border-radius: 16px;
    background: var(--ec-white);
    box-shadow:
        0 1px 0 rgba(255, 255, 255, .9) inset,
        0 16px 40px rgba(18, 34, 92, .06);
}

.ec-toolbar {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--ec-gap);
    padding: var(--ec-inset);
    border-bottom: 1px solid var(--ec-line);
    background: linear-gradient(180deg, #fbfcfe, #fff);
}

.ec-toolbar-copy h2 {
    margin: 0;
    color: var(--ec-navy);
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.ec-toolbar-copy p {
    margin: 4px 0 0;
    color: var(--ec-muted);
    font-size: .84rem;
    line-height: 1.5;
}

.ec-toolbar-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.ec-updated,
.ec-tz {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border: 1px solid var(--ec-line);
    border-radius: 999px;
    color: var(--ec-muted);
    background: var(--ec-soft);
    font-size: .7rem;
    font-weight: 700;
}

.ec-updated svg {
    width: 13px;
    height: 13px;
    color: var(--ec-green);
}

.ec-filters {
    position: sticky;
    top: 88px;
    z-index: 8;
    display: grid;
    gap: 12px;
    padding: 12px var(--ec-inset);
    border-bottom: 1px solid var(--ec-line);
    background: rgba(255, 255, 255, .96);
}

.ec-filter-label {
    display: block;
    margin-bottom: 6px;
    color: var(--ec-muted);
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.ec-filter-group { min-width: 0; max-width: 100%; }

.ec-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    max-width: 100%;
}

.ec-ccy-form { display: none; }

.ec-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    min-height: 36px;
    padding: 0 12px;
    border: 1px solid var(--ec-line);
    border-radius: 999px;
    color: #3d4a63;
    background: var(--ec-white);
    font-size: .78rem;
    font-weight: 750;
    text-decoration: none;
    white-space: nowrap;
}

.ec-chip span:last-child {
    color: #8b93a3;
    font-size: .68rem;
}

.ec-chip:hover {
    color: var(--ec-navy);
    border-color: #c9d3ea;
    background: #f3f6ff;
}

.ec-chip.is-active {
    color: #fff;
    border-color: var(--ec-navy);
    background: var(--ec-navy);
}

.ec-chip.is-active span:last-child {
    color: rgba(255, 255, 255, .72);
}

.ec-clear {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    width: max-content;
    color: var(--ec-blue);
    font-size: .76rem;
    font-weight: 750;
    text-decoration: none;
}

.ec-clear svg { width: 14px; height: 14px; }

.ec-today-high {
    margin: var(--ec-gap) var(--ec-inset);
    padding: 14px 16px;
    border: 1px solid #ead4d6;
    border-inline-start: 3px solid var(--ec-red);
    border-radius: 14px;
    background: #fdf8f8;
}

.ec-today-high-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ec-today-high-head h3 {
    margin: 0;
    color: var(--ec-navy);
    font-size: .86rem;
    font-weight: 800;
}

.ec-today-high-head span {
    padding: 2px 8px;
    border-radius: 999px;
    color: #9b3b44;
    background: #f4e4e6;
    font-size: .68rem;
    font-weight: 800;
}

.ec-today-high-list {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ec-today-high-list a {
    display: grid;
    grid-template-columns: 64px auto minmax(0, 1fr) auto;
    gap: 8px 10px;
    align-items: center;
    padding: 8px;
    border-radius: 10px;
    color: inherit;
    text-decoration: none;
}

.ec-today-high-list a:hover { background: #fff; }

.ec-today-cur { font-size: .78rem; font-weight: 750; white-space: nowrap; }
.ec-today-name {
    min-width: 0;
    overflow: hidden;
    color: var(--ec-navy);
    font-size: .84rem;
    font-weight: 750;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ec-today-fc { color: var(--ec-muted); font-size: .72rem; font-weight: 650; white-space: nowrap; }

.ec-day-nav {
    display: flex;
    gap: 8px;
    margin: var(--ec-gap) var(--ec-inset);
    overflow-x: auto;
    scrollbar-width: thin;
}

.ec-day-nav a {
    display: grid;
    flex: 0 0 auto;
    min-width: 78px;
    padding: 9px 11px;
    border: 1px solid var(--ec-line);
    border-radius: 12px;
    color: var(--ec-muted);
    background: var(--ec-soft);
    text-decoration: none;
}

.ec-day-nav a strong,
.ec-day-nav a span,
.ec-day-nav a em { display: block; }
.ec-day-nav a strong { color: var(--ec-navy); font-size: .78rem; font-weight: 800; }
.ec-day-nav a span { margin: 1px 0 4px; font-size: .68rem; font-weight: 650; }
.ec-day-nav a em { color: #8b93a3; font-size: .64rem; font-style: normal; font-weight: 750; }

.ec-day-nav a.is-today,
.ec-day-nav a:hover {
    border-color: #c9d3ea;
    background: #eef3ff;
}

.ec-day-nav a.is-today {
    box-shadow: inset 0 -2px 0 var(--ec-gold);
}

.ec-days { display: grid; }
.ec-day {
    scroll-margin-top: 150px;
    border-top: 1px solid var(--ec-line);
}

.ec-day-head {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    margin: 0;
    padding: 10px var(--ec-inset);
    color: var(--ec-navy);
    background: #f8fafc;
    font-size: .9rem;
    font-weight: 800;
}

.ec-day-head svg { width: 16px; height: 16px; color: var(--ec-blue); }

.ec-day-count,
.ec-day-pill {
    padding: 3px 8px;
    border-radius: 999px;
    color: var(--ec-muted);
    background: #e8ecf3;
    font-size: .64rem;
    font-weight: 750;
}

.ec-day-count { margin-inline-start: auto; }
.ec-day-pill { color: var(--ec-navy); background: #e4ebff; }

.ec-table-wrap,
.ec-table {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.ec-cols { display: none; }

.ec-table {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 var(--ec-inset) var(--ec-inset);
}

.ec-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
        "time cur"
        "title title"
        "impact impact"
        "fc prev";
    gap: 8px;
    padding: 12px;
    border: 1px solid var(--ec-line);
    border-inline-start: 3px solid #c5cad3;
    border-radius: 14px;
    background: var(--ec-white);
}

.ec-row[data-impact="high"] { border-inline-start-color: var(--ec-red); }
.ec-row[data-impact="medium"] { border-inline-start-color: var(--ec-amber); }
.ec-row[data-impact="low"] { border-inline-start-color: #9aa3b0; }

.ec-cell {
    min-width: 0;
    max-width: 100%;
}

.ec-cell:nth-child(1) { grid-area: time; align-self: center; }
.ec-cell:nth-child(2) {
    grid-area: cur;
    display: inline-flex;
    align-items: center;
    justify-self: end;
    width: auto;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--ec-soft);
    font-size: .72rem;
}
.ec-cell:nth-child(3) { grid-area: impact; }
.ec-cell:nth-child(4) {
    grid-area: title;
    overflow: visible;
    text-overflow: unset;
    white-space: normal;
    font-size: .95rem;
    line-height: 1.35;
}
.ec-cell:nth-child(5) { grid-area: fc; }
.ec-cell:nth-child(6) { grid-area: prev; }

.ec-cell.ec-num {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    width: 100%;
    padding: 8px 10px;
    border-radius: 10px;
    background: var(--ec-soft);
    color: var(--ec-navy);
    font-size: .88rem;
    font-weight: 800;
    text-align: start;
    white-space: normal;
}

.ec-cell.ec-num::before {
    display: block;
    color: #8b93a1;
    content: attr(data-label);
    font-size: .62rem;
    font-weight: 750;
    letter-spacing: .03em;
    text-transform: uppercase;
}

@media (min-width: 992px) {
    .ec-table {
        display: grid;
        grid-template-columns: 92px 108px 118px minmax(0, 1fr) 96px 96px;
        gap: 0;
        padding: 0;
    }

    .ec-cols,
    .ec-row {
        display: contents;
    }

    .ec-cols span,
    .ec-cell {
        min-width: 0;
        box-sizing: border-box;
        grid-area: auto;
        justify-self: stretch;
        width: auto;
    }

    .ec-cols span {
        padding: 9px 14px;
        border-bottom: 1px solid var(--ec-line);
        color: #7b8596;
        background: #f8fafc;
        font-size: .64rem;
        font-weight: 800;
        letter-spacing: .04em;
        text-align: start;
        text-transform: uppercase;
    }

    .ec-cell {
        display: block;
        padding: 12px 14px;
        border: 0;
        border-top: 1px solid var(--ec-line);
        border-radius: 0;
        background: var(--ec-white);
        color: #445064;
        font-size: .85rem;
        grid-area: auto;
        justify-self: stretch;
        width: auto;
    }

    .ec-cell:nth-child(1),
    .ec-cell:nth-child(2),
    .ec-cell:nth-child(3),
    .ec-cell:nth-child(4),
    .ec-cell:nth-child(5),
    .ec-cell:nth-child(6) {
        display: block;
        grid-area: auto;
        justify-self: stretch;
        align-self: stretch;
        width: auto;
        max-width: none;
    }

    .ec-cell:nth-child(2) {
        padding: 12px 14px;
        border-radius: 0;
        background: var(--ec-white);
        font-size: .85rem;
    }

    .ec-cell:nth-child(4) {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: .85rem;
        line-height: 1.4;
    }

    .ec-cols .ec-num-head,
    .ec-cell.ec-num {
        display: block;
        padding: 12px 14px;
        border-radius: 0;
        background: var(--ec-white);
        color: #5a6372;
        font-size: .85rem;
        font-weight: 650;
        text-align: end;
        white-space: nowrap;
    }

    .ec-cell.ec-num::before { display: none; }

    .ec-cell:first-child { border-inline-start: 3px solid #c5cad3; }
    .ec-row[data-impact="high"] .ec-cell:first-child { border-inline-start-color: var(--ec-red); }
    .ec-row[data-impact="medium"] .ec-cell:first-child { border-inline-start-color: var(--ec-amber); }
    .ec-row[data-impact="low"] .ec-cell:first-child { border-inline-start-color: #9aa3b0; }

    .ec-row:hover .ec-cell { background: #f7f9ff; }

    .ec-title {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        font-size: .85rem;
        line-height: 1.4;
    }
}

.ec-time {
    color: var(--ec-navy);
    font-size: .88rem;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    white-space: nowrap;
}
.ec-cur { color: var(--ec-navy); font-weight: 800; white-space: nowrap; }
.ec-cur-flag { margin-inline-end: 5px; }

.ec-dot {
    display: inline-block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #9aa3b0;
    vertical-align: 1px;
}
.ec-dot--high { background: var(--ec-red); }
.ec-dot--medium { background: var(--ec-amber); }
.ec-dot--low { background: #9aa3b0; }
.ec-dot--holiday { background: #7c6ea8; }

.ec-impact {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: #f1f3f6;
    font-size: .72rem;
    font-weight: 750;
    white-space: nowrap;
}
.ec-impact--high { color: #9b3b44; background: #f8e9eb; }
.ec-impact--medium { color: #8a6a1e; background: #f7efd9; }
.ec-impact--low { color: #5c6573; }

.ec-title {
    color: var(--ec-navy);
    font-weight: 750;
    line-height: 1.4;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ec-num {
    color: #5a6372;
    font-variant-numeric: tabular-nums;
    font-weight: 650;
    text-align: end;
    white-space: nowrap;
}
.ec-empty { padding: 48px var(--ec-inset); color: var(--ec-muted); text-align: center; }

/* ── GEO / related / FAQ ── */
#econcal-index .ec-geo-band,
#econcal-index .ec-faq-band {
    background: var(--ec-white);
    border-top: 1px solid var(--ec-line);
}

#econcal-index .ec-related-band {
    background: var(--ec-soft);
    border-top: 1px solid var(--ec-line);
}

.ec-content-heading,
.ec-related-head { max-width: 720px; margin: 0 0 var(--ec-gap); }

.ec-content-heading h2,
.ec-related-head h2,
.ec-faq-copy h2 {
    margin: 0;
    color: var(--ec-navy);
    font-size: clamp(1.35rem, 2.2vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -.02em;
}

.ec-content-heading p,
.ec-related-head p,
.ec-faq-copy p {
    margin: 8px 0 0;
    color: var(--ec-muted);
    line-height: 1.7;
}

#econcal-index .geo-summary-stack { margin: 0 0 var(--ec-gap); }
#econcal-index .eeat-key-takeaways {
    margin: 0;
    padding: 16px var(--ec-inset);
    border: 1px solid var(--ec-line);
    border-radius: 14px;
    background: var(--ec-soft);
}

.ec-card-icon {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    margin-bottom: 12px;
    border-radius: 10px;
    color: var(--ec-navy);
    background: #e8eeff;
}

.ec-card-icon svg { width: 16px; height: 16px; }
.ec-geo-warn .ec-card-icon { color: #9b3b44; background: #f8e9eb; }
.ec-geo-tip .ec-card-icon { color: #0f6b4c; background: #e6f6ef; }

.ec-short-card,
.ec-geo-grid article,
.ec-howto li,
.ec-checklist,
.ec-glossary,
.ec-related-card {
    border: 1px solid var(--ec-line);
    border-radius: 14px;
    background: var(--ec-white);
    box-shadow: 0 8px 22px rgba(18, 34, 92, .04);
}

.ec-short-card { margin-bottom: var(--ec-gap); padding: 18px var(--ec-inset); }

.ec-short-card h3,
.ec-geo-grid h3,
.ec-checklist h3,
.ec-glossary h3 {
    margin: 0 0 8px;
    color: var(--ec-navy);
    font-size: .95rem;
    font-weight: 800;
}

.ec-short-card p,
.ec-geo-grid p,
.ec-howto p {
    margin: 0;
    color: #4a5260;
    font-size: .92rem;
    line-height: 1.7;
}

.ec-howto {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--ec-gap);
    margin: 0 0 var(--ec-gap);
    padding: 0;
    list-style: none;
}

.ec-howto li {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    padding: 16px;
}

.ec-howto li span {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    color: #fff;
    background: var(--ec-navy);
    font-size: .75rem;
    font-weight: 800;
}

.ec-howto strong {
    display: block;
    margin-bottom: 4px;
    color: var(--ec-navy);
    font-size: .88rem;
}

.ec-geo-grid,
.ec-side-grid,
.ec-related-grid { display: grid; gap: var(--ec-gap); }
.ec-geo-grid, .ec-side-grid { grid-template-columns: 1fr 1fr; }
.ec-related-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.ec-geo-grid article,
.ec-checklist,
.ec-glossary { padding: 18px var(--ec-inset); }

.ec-geo-warn { border-inline-start: 3px solid var(--ec-amber); }
.ec-geo-tip { border-inline-start: 3px solid var(--ec-green); }
.ec-side-grid { margin-top: var(--ec-gap); }

.ec-checklist ul { margin: 0; padding-inline-start: 1.1rem; }
.ec-checklist li { padding: 4px 0; color: #4a5260; font-size: .88rem; line-height: 1.55; }

.ec-glossary dl { display: grid; gap: 10px; margin: 0; }
.ec-glossary dt { color: var(--ec-navy); font-size: .82rem; font-weight: 750; }
.ec-glossary dd { margin: 2px 0 0; color: var(--ec-muted); font-size: .84rem; line-height: 1.55; }

.ec-risk-note {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 10px;
    margin-top: var(--ec-gap);
    padding: 14px var(--ec-inset);
    border: 1px solid #ead9b4;
    border-inline-start: 3px solid var(--ec-amber);
    border-radius: 14px;
    color: #6a5a3e;
    background: #fffaf0;
    font-size: .84rem;
    line-height: 1.65;
}
.ec-risk-note p { margin: 0; }
.ec-risk-note svg { width: 20px; height: 20px; color: var(--ec-amber); }

.ec-related-card {
    display: flex;
    flex-direction: column;
    min-height: 176px;
    padding: 18px var(--ec-inset);
    color: inherit;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease;
}
.ec-related-card:hover {
    color: inherit;
    border-color: #c9d3ea;
    box-shadow: 0 14px 28px rgba(18, 34, 92, .1);
    transform: translateY(-2px);
}
.ec-related-card > svg {
    width: 20px;
    height: 20px;
    margin-bottom: 16px;
    color: var(--ec-blue);
}
.ec-related-card h3 { margin: 0 0 6px; color: var(--ec-navy); font-size: .95rem; font-weight: 800; }
.ec-related-card p { margin: 0; color: var(--ec-muted); font-size: .8rem; line-height: 1.55; }
.ec-related-card span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: auto;
    padding-top: 12px;
    color: var(--ec-blue);
    font-size: .76rem;
    font-weight: 750;
}
.ec-related-card span svg { width: 14px; height: 14px; }

[dir="rtl"] .ec-related-card span svg { transform: scaleX(-1); }

.ec-source-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-top: var(--ec-space);
    padding-top: var(--ec-gap);
    border-top: 1px solid var(--ec-line);
    color: var(--ec-muted);
    font-size: .75rem;
}
.ec-source-row a { color: var(--ec-blue); font-weight: 650; text-decoration: none; }

#econcal-index .accordion { display: grid; gap: 8px; margin-top: var(--ec-gap); }
#econcal-index .accordion-item {
    overflow: hidden;
    border: 1px solid var(--ec-line);
    border-radius: 13px;
}
#econcal-index .accordion-button {
    padding: 15px var(--ec-inset);
    color: var(--ec-navy);
    background: var(--ec-white);
    font-size: .9rem;
    font-weight: 750;
    box-shadow: none;
}
#econcal-index .accordion-button:not(.collapsed) {
    color: var(--ec-navy);
    background: #f4f7ff;
}
#econcal-index .accordion-body {
    padding: 2px var(--ec-inset) 16px;
    color: var(--ec-muted);
    font-size: .86rem;
    line-height: 1.75;
}

.ec-chip:focus-visible,
.ec-focus:focus-visible,
.ec-related-card:focus-visible,
.ec-day-nav a:focus-visible,
.ec-clear:focus-visible {
    outline: 2px solid rgba(30, 78, 216, .35);
    outline-offset: 2px;
}

@media (max-width: 1199.98px) {
    .ec-howto,
    .ec-related-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 991.98px) {
    #econcal-index { --ec-space: 22px; --ec-inset: 16px; --ec-gap: 12px; }

    .ec-crumb { margin-bottom: 12px; }
    .ec-hero-grid { grid-template-columns: 1fr; gap: 14px; min-width: 0; }
    .ec-hero-title { font-size: clamp(1.45rem, 7vw, 1.85rem); margin-bottom: 8px; }
    .ec-hero-lead { margin-bottom: 12px; font-size: .92rem; line-height: 1.55; }
    .ec-kicker { max-width: 100%; white-space: normal; }
    .ec-hero-chips {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        padding-top: 12px;
    }
    .ec-hero-chips li,
    .ec-hero-chips li + li {
        padding: 6px 10px;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 999px;
        background: rgba(255, 255, 255, .06);
        font-size: .75rem;
    }
    .ec-focus {
        min-width: 0;
        padding: 14px 16px;
        border-radius: 14px;
    }
    .ec-focus-title { overflow-wrap: anywhere; font-size: 1rem; }

    .ec-toolbar { display: block; padding: 14px var(--ec-inset) 12px; }
    .ec-toolbar-copy h2 { font-size: 1.08rem; }
    .ec-toolbar-copy p { display: none; }
    .ec-toolbar-meta {
        justify-content: flex-start;
        margin-top: 8px;
    }
    .ec-updated,
    .ec-tz {
        max-width: 100%;
        padding: 5px 8px;
        white-space: normal;
        font-size: .65rem;
    }

    .ec-filters {
        position: static;
        min-width: 0;
        gap: 12px;
        padding: 12px var(--ec-inset);
        background: #fff;
    }

    .ec-clear { margin: 0; }

    .ec-chip-row--impact {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 6px;
    }
    .ec-chip-row--impact .ec-chip {
        flex-direction: column;
        justify-content: center;
        gap: 2px;
        width: 100%;
        min-height: 52px;
        padding: 6px 4px;
        border-radius: 12px;
        font-size: .72rem;
        text-align: center;
        white-space: normal;
        line-height: 1.15;
    }
    .ec-chip-row--impact .ec-chip span:last-child {
        font-size: .68rem;
        font-weight: 800;
    }

    .ec-chip-row--ccy { display: none; }
    .ec-ccy-form { display: block; }
    .ec-select-wrap { display: block; }
    .ec-select {
        width: 100%;
        min-height: 48px;
        padding: 0 44px 0 14px;
        border: 1px solid var(--ec-line);
        border-radius: 12px;
        color: var(--ec-navy);
        background-color: var(--ec-soft);
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2312225c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
        background-repeat: no-repeat;
        background-position: right 14px center;
        box-shadow: inset 0 0 0 1px transparent;
        font-size: 16px;
        font-weight: 750;
        appearance: none;
        -webkit-appearance: none;
    }
    [dir="rtl"] .ec-select {
        padding: 0 14px 0 44px;
        background-position: left 14px center;
    }
    .ec-select:focus {
        border-color: #c9d3ea;
        background-color: #fff;
        outline: 2px solid rgba(30, 78, 216, .18);
        outline-offset: 1px;
    }
    .ec-select-go {
        margin-top: 8px;
        min-height: 44px;
        width: 100%;
        border: 0;
        border-radius: 12px;
        color: #fff;
        background: var(--ec-navy);
        font-weight: 750;
    }

    .ec-geo-grid,
    .ec-side-grid { grid-template-columns: 1fr; }

    #econcal-index .aio-quick-answer,
    #econcal-index .aio-quick-answer-body {
        max-width: 100%;
        overflow-wrap: break-word;
    }
    #econcal-index .ec-main .aio-quick-answer { padding: 14px var(--ec-inset); }

    .ec-today-high {
        margin: 12px var(--ec-inset) 16px;
        padding: 14px;
    }
    .ec-today-high-head { margin-bottom: 10px; }
    .ec-today-high-list { gap: 8px; }
    .ec-today-high-list a {
        grid-template-columns: auto minmax(0, 1fr);
        gap: 4px 8px;
        padding: 10px 12px;
        border-radius: 10px;
        background: #fff;
    }
    .ec-days { padding-top: 4px; }
    .ec-day:first-child { border-top: 0; }
    .ec-today-name {
        grid-column: 1 / -1;
        white-space: normal;
        overflow: visible;
        text-overflow: unset;
    }
    .ec-today-fc { display: none; }

    .ec-day-nav { display: none; }
    .ec-day-head {
        flex-wrap: wrap;
        gap: 6px 8px;
        min-height: 0;
        padding: 14px var(--ec-inset) 8px;
        background: transparent;
        font-size: .82rem;
    }
    .ec-day-count { margin-inline-start: 0; }

    .ec-table {
        gap: 8px;
        padding: 0 var(--ec-inset) var(--ec-inset);
    }
    .ec-row {
        grid-template-areas:
            "time cur"
            "title title"
            "fc prev";
        gap: 6px 8px;
        margin: 0;
        padding: 12px;
        box-shadow: 0 1px 2px rgba(18, 34, 92, .04);
    }
    .ec-cell:nth-child(3) { display: none; }
    .ec-cell.ec-num { padding: 8px 10px; }
    .ec-time { font-size: .95rem; }
    .ec-cell:nth-child(4) { font-size: .92rem; padding: 0; }
}

@media (max-width: 767.98px) {
    #econcal-index { --ec-space: 18px; --ec-inset: 14px; }

    .ec-hero-lead {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .ec-workspace { border-radius: 16px; }
    .ec-chip { min-height: 36px; }
    .ec-day { scroll-margin-top: 72px; }

    .ec-howto,
    .ec-related-grid { grid-template-columns: 1fr; }
    .ec-related-card { min-height: 0; }
    .ec-howto li { grid-template-columns: auto 1fr; }
}

@media (prefers-reduced-motion: reduce) {
    #econcal-index *,
    #econcal-index *::before,
    #econcal-index *::after {
        scroll-behavior: auto !important;
        transition: none !important;
    }
}
