@import url("variables.css?v=p2kdc");

* {
    box-sizing: border-box;
}

.member-login-page {
    padding: 2.5rem 0;
}

.member-login-card {
    max-width: 520px;
    margin: 0 auto;
}

.member-login-message {
    color: var(--crypto-muted);
    margin-bottom: 1rem;
}

.member-logout-form {
    margin: 0;
}

.member-logout-button {
    border: 0;
    background: transparent;
    width: 100%;
    text-align: inherit;
}

body.public-page {
    min-height: 100vh;
    margin: 0;
    color: var(--color-text);
    background: #ffffff;
    font-family: var(--font-sans);
    font-size: var(--font-size-base);
    line-height: var(--line-height-base);
}

a {
    color: var(--color-primary);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: linear-gradient(94deg, var(--color-navy) 0%, #0b1f3d 48%, var(--color-navy-soft) 100%);
    box-shadow: 0 4px 22px rgba(8, 26, 51, 0.2);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
}

.crypto-navbar {
    --bs-navbar-toggler-padding-x: 0.48rem;
    --bs-navbar-toggler-padding-y: 0.34rem;
    --bs-navbar-toggler-focus-width: 0;
}

.crypto-navbar-toggler {
    border: 1px solid var(--header-chip-border);
    border-radius: 10px;
    background: var(--header-chip-bg);
}

.crypto-navbar-toggler:focus-visible {
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.28);
}

.crypto-navbar .navbar-toggler-icon {
    filter: invert(1) brightness(1.06);
    opacity: 0.92;
}

.crypto-brand {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
}

.brand-btc-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    box-shadow: none !important;
}

.brand-symbol-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    border-radius: 8px;
    background: linear-gradient(145deg, #ffd089 0%, #ffaa33 52%, #f7931a 100%);
    color: #0c1e36;
    font-size: 25px;
    font-weight: 800;
    letter-spacing: 0;
}

.brand-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.brand-title {
    color: var(--header-text-strong);
    font-size: 1.02rem;
    font-weight: 500;
}

.brand-subtitle {
    color: var(--header-text-muted);
    font-size: 0.78rem;
    font-weight: 400;
}

/* Mobile slide menu + desktop toolbar */
.crypto-navbar-rows {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.crypto-mobile-panel-head {
    display: none;
}

.crypto-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 1038;
    background: rgba(5, 16, 32, 0.5);
}

.crypto-menu-overlay[hidden] {
    display: none !important;
}

body.public-menu-open {
    overflow: hidden;
}

@media (min-width: 992px) {
    .navbar-expand-lg.crypto-navbar .crypto-navbar-collapse {
        display: flex !important;
        flex-grow: 1;
    }

    /* Main nav at inline-start; language (.crypto-nav-actions) at inline-end */
    .crypto-navbar-rows {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        flex-wrap: nowrap;
        gap: 1rem;
        width: 100%;
    }

    .crypto-nav-main {
        flex-direction: row !important;
        margin-inline: 0 !important;
        align-items: center !important;
    }

    .crypto-navbar-rows .crypto-nav-actions {
        margin-inline-start: auto;
    }
}

/* ===== trade archive public pages ===== */
.trade-archive-page,
.trade-archive-detail-page {
    padding-block: var(--space-section);
}

.trade-archive-heading,
.trade-archive-detail-heading {
    margin-bottom: 1rem;
}

.trade-archive-heading h1,
.trade-archive-detail-heading h1 {
    margin: 0;
    color: var(--color-heading);
    font-size: clamp(1.55rem, 2.2vw, 2.15rem);
    font-weight: 700;
    letter-spacing: 0;
}

.trade-archive-detail-heading p {
    max-width: 780px;
    margin: 0.45rem 0 0;
    color: var(--color-muted);
}

.trade-archive-kicker,
.trade-archive-marker {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 1.85rem;
    margin-bottom: 0.45rem;
    padding: 0.2rem 0.62rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
    color: var(--color-primary-dark);
    font-size: 0.82rem;
    font-weight: 700;
}

.trade-archive-layout {
    display: grid;
    grid-template-columns: 1fr;
    grid-template-areas:
        "archive-main"
        "archive-sidebar";
    gap: 1rem;
    align-items: start;
}

.trade-archive-sidebar {
    grid-area: archive-sidebar;
    min-width: 0;
}

.trade-archive-main {
    grid-area: archive-main;
    min-width: 0;
}

@media (min-width: 992px) {
    .trade-archive-layout {
        direction: ltr;
        grid-template-columns: minmax(0, 68fr) minmax(260px, 32fr);
        grid-template-areas: "archive-main archive-sidebar";
    }

    [dir="rtl"] .trade-archive-layout {
        grid-template-columns: minmax(260px, 32fr) minmax(0, 68fr);
        grid-template-areas: "archive-sidebar archive-main";
    }

    [dir="rtl"] .trade-archive-main,
    [dir="rtl"] .trade-archive-sidebar {
        direction: rtl;
    }
}

.trade-symbol-list {
    display: grid;
    gap: 0.55rem;
}

.trade-symbol-link,
.trade-archive-group__symbol,
.trade-card__link,
.trade-archive-ad__link,
.trade-current-link,
.trade-pagination__link,
.trade-filter-chip {
    text-decoration: none;
}

.trade-symbol-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    padding: 0.62rem 0.7rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    color: var(--color-text);
    background: var(--color-surface);
    transition: border-color 0.18s ease, background 0.18s ease, color 0.18s ease;
}

.trade-symbol-link:hover,
.trade-symbol-link.active {
    border-color: var(--color-border-strong);
    background: var(--color-surface-soft);
    color: var(--color-primary-dark);
}

.trade-symbol-link__name,
.trade-archive-group__symbol {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    min-width: 0;
}

.trade-symbol-link__name span:last-child,
.trade-archive-group__symbol span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.trade-symbol-link__icon,
.trade-archive-group__icon {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 50%;
}

.trade-symbol-link__count {
    min-width: 1.8rem;
    padding: 0.06rem 0.42rem;
    border-radius: 999px;
    background: var(--signal-neutral-bg);
    color: var(--signal-neutral-text);
    text-align: center;
    font-size: 0.78rem;
    font-weight: 700;
}

.trade-archive-ad {
    margin-top: 1rem;
}

.trade-archive-ad__body {
    display: grid;
    gap: 0.62rem;
}

.trade-archive-ad__title {
    margin: 0;
    color: var(--color-heading);
    font-size: 1.02rem;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.trade-archive-ad__text {
    margin: 0;
    color: var(--color-text);
    font-size: 0.92rem;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.trade-archive-ad__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    width: fit-content;
    max-width: 100%;
    min-height: 2.15rem;
    padding: 0.28rem 0.72rem;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    background: var(--color-surface-accent);
    color: var(--color-primary-dark);
    font-weight: 800;
    overflow-wrap: anywhere;
}

.trade-archive-ad__link:hover {
    background: var(--color-surface-soft);
    color: var(--color-primary-dark);
}

[dir="rtl"] .trade-archive-ad__link i {
    transform: scaleX(-1);
}

.trade-archive-group {
    margin-bottom: 1rem;
}

.trade-archive-group__head,
.trade-archive-list-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
}

.trade-archive-group__head {
    margin-bottom: 0.7rem;
    padding: 0.35rem 0.1rem;
    border-bottom: 1px solid var(--color-border);
    color: var(--color-muted);
    font-size: 0.88rem;
    font-weight: 700;
}

.trade-archive-group__symbol {
    color: var(--color-heading);
    font-size: 1.05rem;
    font-weight: 800;
}

.trade-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr));
    gap: 0.85rem;
}

.trade-card {
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.95rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--shadow-sm);
}

.trade-card__head,
.trade-card__footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.7rem;
}

.trade-card__symbol {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0.1rem;
}

.trade-card__symbol strong {
    color: var(--color-heading);
    font-size: 1rem;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.trade-card__symbol span,
.trade-card__published {
    color: var(--color-muted);
    font-size: 0.82rem;
}

.trade-card__summary {
    margin: 0;
    color: var(--color-text);
    font-size: 0.92rem;
    line-height: 1.55;
}

.trade-card__meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    margin: 0;
}

.trade-card__meta div {
    min-width: 0;
    padding: 0.5rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
}

.trade-card__meta dt {
    color: var(--color-muted);
    font-size: 0.74rem;
    font-weight: 700;
}

.trade-card__meta dd {
    margin: 0.12rem 0 0;
    color: var(--color-heading);
    font-size: 0.88rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.trade-card__footer {
    margin-top: auto;
    align-items: center;
    flex-wrap: wrap;
}

.trade-card__link,
.trade-current-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    min-height: 2.15rem;
    padding: 0.28rem 0.7rem;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
    color: var(--color-primary-dark);
    font-weight: 800;
}

.trade-card__link:hover,
.trade-current-link:hover {
    background: var(--color-surface-accent);
    color: var(--color-primary-dark);
}

.trade-filter-bar {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
    padding-bottom: 0.85rem;
    border-bottom: 1px solid var(--color-border);
}

.trade-filter-bar__label {
    color: var(--color-muted);
    font-size: 0.85rem;
    font-weight: 800;
}

.trade-filter-bar__items {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-wrap: wrap;
}

.trade-filter-chip {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.18rem 0.65rem;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: var(--color-surface);
    color: var(--color-muted);
    font-weight: 800;
}

.trade-filter-chip:hover,
.trade-filter-chip.active {
    border-color: var(--color-primary);
    background: var(--color-surface-accent);
    color: var(--color-primary-dark);
}

.trade-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.trade-pagination__link,
.trade-pagination__page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.2rem;
    padding: 0.26rem 0.72rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    color: var(--color-heading);
    font-weight: 800;
}

.trade-pagination__link.disabled {
    color: var(--color-muted);
    opacity: 0.55;
}

.trade-archive-detail-layout {
    margin-top: 1rem;
}

.trade-archive-summary-card {
    margin-bottom: 1rem;
}

.trade-detail-definition-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    margin: 0;
}

.trade-detail-definition-list div {
    min-width: 0;
    padding: 0.65rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
}

.trade-detail-definition-list dt {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 800;
}

.trade-detail-definition-list dd {
    margin: 0.18rem 0 0;
    color: var(--color-heading);
    font-weight: 800;
    overflow-wrap: anywhere;
}

.trade-current-link {
    margin-top: 0.8rem;
}

@media (max-width: 575.98px) {
    .trade-card__meta,
    .trade-detail-definition-list {
        grid-template-columns: 1fr;
    }

    .trade-card__head,
    .trade-card__footer,
    .trade-archive-group__head {
        align-items: stretch;
        flex-direction: column;
    }

    .trade-card__link,
    .trade-archive-ad__link,
    .trade-current-link,
    .trade-pagination__link,
    .trade-pagination__page {
        width: 100%;
    }
}

@media (max-width: 991.98px) {
    .crypto-mobile-panel {
        position: fixed;
        top: 0;
        bottom: 0;
        z-index: 1045;
        width: min(86vw, 340px);
        max-width: 100%;
        padding: 1rem;
        overflow-y: auto;
        background: #081a33;
        border: 1px solid rgba(255, 255, 255, 0.12);
        box-shadow: 0 20px 48px rgba(5, 16, 32, 0.32);
        transition: transform 0.24s ease;
        display: block !important;
    }

    [dir="ltr"] .crypto-mobile-panel {
        left: 0;
        right: auto;
        transform: translateX(-104%);
    }

    [dir="rtl"] .crypto-mobile-panel {
        right: 0;
        left: auto;
        transform: translateX(104%);
    }

    [dir="ltr"] .crypto-mobile-panel.is-open,
    [dir="rtl"] .crypto-mobile-panel.is-open,
    .crypto-mobile-panel.is-open {
        transform: translateX(0) !important;
    }

    .crypto-mobile-panel-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 0.8rem;
        padding-bottom: 0.85rem;
        margin-bottom: 0.85rem;
        border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    }

    .crypto-mobile-panel-title {
        color: var(--header-text-strong);
        font-size: 0.98rem;
        font-weight: 600;
    }

    .crypto-mobile-panel-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.25rem;
        height: 2.25rem;
        padding: 0;
        border: 1px solid var(--header-chip-border);
        border-radius: var(--radius-sm);
        background: var(--header-chip-bg);
        color: var(--header-text-strong);
    }

    .crypto-mobile-panel-close:focus-visible {
        outline: none;
        box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.28);
    }

    .crypto-mobile-panel .navbar-nav {
        align-items: stretch !important;
        gap: 0.55rem;
    }

    .crypto-mobile-panel .crypto-nav-main .nav-item {
        display: block;
        width: 100%;
    }

    .crypto-mobile-panel .crypto-dropdown-menu {
        position: static !important;
        transform: none !important;
        width: 100%;
        margin-top: 0.35rem !important;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .crypto-mobile-panel {
        transition: none;
    }
}

.crypto-nav-main .nav-item {
    display: flex;
    align-items: center;
}

.crypto-nav-main .nav-link {
    padding: 0.48rem 0.82rem;
}

/* BTC / pair trigger */
.crypto-nav-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.48rem;
    color: var(--header-text-strong) !important;
    font-weight: 500;
    font-size: 0.9rem;
    line-height: 1.2;
    border-radius: 10px;
    border: 1px solid var(--header-chip-border);
    background: var(--header-chip-bg);
    text-decoration: none !important;
    transition: border-color 0.18s ease, background-color 0.18s ease, box-shadow 0.18s ease;
}

.crypto-nav-chip:hover,
.crypto-nav-chip:focus-visible {
    border-color: var(--header-chip-border-hover);
    background: var(--header-chip-bg-hover);
    outline: none;
}

.crypto-symbol-toggle.dropdown-toggle.show,
.crypto-symbol-toggle.dropdown-toggle[aria-expanded="true"] {
    border-color: var(--header-chip-border-hover);
    background: var(--header-chip-bg-hover);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.crypto-symbol-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.18rem 0.44rem;
    font-size: 0.7rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    color: #0c1e36;
    background: linear-gradient(145deg, #ffd089 0%, #ffaa33 52%, #f7931a 100%);
    border-radius: 6px;
    line-height: 1;
}

.crypto-symbol-toggle.dropdown-toggle::after {
    margin-inline-start: 0.08rem;
    vertical-align: 0.2em;
    border-top-color: rgba(248, 251, 255, 0.95);
}

/* Blog ghost link */
.crypto-nav-muted {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    color: var(--header-text-muted) !important;
    font-size: 0.88rem;
    font-weight: 500;
    line-height: 1.25;
    border-radius: 10px;
    border: 1px solid transparent;
    text-decoration: none !important;
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.crypto-nav-muted:hover,
.crypto-nav-muted:focus-visible,
.crypto-nav-muted.active {
    color: var(--header-text-strong) !important;
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.12);
    outline: none;
}

.nav-blog-link i,
.nav-trade-archive-link i {
    opacity: 0.88;
    font-size: 1.02rem;
}

/* Language selector */
.crypto-lang-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.44rem;
    padding: 0.44rem 0.86rem !important;
    font-size: 0.83rem !important;
    font-weight: 500;
    line-height: 1.2;
    border-radius: 10px !important;
    border: 1px solid var(--header-chip-border);
    background: transparent;
    color: var(--header-text-muted) !important;
    transition: border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.crypto-lang-chip:hover,
.crypto-lang-chip:focus-visible {
    border-color: var(--header-chip-border-hover);
    background: var(--header-chip-bg-hover);
    color: var(--header-text-strong) !important;
    outline: none;
}

.crypto-lang-chip.dropdown-toggle.show,
.crypto-lang-chip.dropdown-toggle[aria-expanded="true"] {
    border-color: var(--header-chip-border-hover);
    background: var(--header-chip-bg-hover);
    color: var(--header-text-strong) !important;
}

.crypto-lang-chip.dropdown-toggle::after {
    margin-inline-start: 0.16rem;
    border-top-color: rgba(248, 251, 255, 0.88);
}

.crypto-lang-chip i {
    font-size: 1.02rem;
    opacity: 0.9;
}

.crypto-lang-current {
    max-width: 8.5rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Dropdown panels */
.crypto-dropdown-menu {
    --bs-dropdown-min-width: 11.75rem;
    margin-top: 0.45rem !important;
    padding: 0.35rem !important;
    border: 1px solid rgba(219, 230, 245, 0.98);
    border-radius: 12px;
    box-shadow: 0 14px 36px rgba(9, 30, 66, 0.14);
    background: var(--color-surface);
}

.crypto-dropdown-menu .dropdown-item {
    color: var(--color-heading);
    font-size: 0.9rem;
    font-weight: 400;
    border-radius: 8px;
    padding: 0.44rem 0.65rem !important;
}

.crypto-dropdown-menu .dropdown-item:hover,
.crypto-dropdown-menu .dropdown-item:focus {
    background: rgba(13, 110, 253, 0.09);
    color: var(--color-primary-dark);
}

.crypto-dropdown-menu .dropdown-item.active,
.crypto-dropdown-menu .dropdown-item:active {
    color: var(--color-primary-dark);
    background: rgba(13, 110, 253, 0.14);
    font-weight: 500;
}

.site-main {
    padding: 1.4rem 0 1.8rem;
}

.crypto-dashboard {
    color: var(--color-text);
}

.dashboard-summary,
.crypto-card {
    border: 1px solid var(--color-border);
/*     border-radius: var(--radius-md);
    box-shadow: var(--shadow-sm); */
    background: var(--color-surface);
}

.dashboard-summary {
    margin-bottom: var(--space-section);
}

.summary-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.9rem;
    margin-bottom: 1rem;
}

.summary-symbol {
    display: flex;
    align-items: center;
    gap: 0.7rem;
}

.summary-btc-icon {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    box-shadow: none !important;
}

.coin-icon,
.coinicon,
.symbol-icon,
.symbolicon,
.asset-icon,
.asseticon,
.summary-btc-icon,
.brand-btc-icon,
.footer-btc-icon {
    box-shadow: none !important;
}

.summary-kicker {
    color: var(--color-muted);
    font-size: 0.99rem;
}

.live-price-value {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    transition: color 0.18s ease;
}

.live-price-neutral {
    color: var(--color-heading);
}

.live-price-up {
    color: #0f7b4d;
}

.live-price-down {
    color: #b42318;
}

.summary-symbol-name {
    color: var(--color-heading);
    font-size: 1.06rem;
    font-weight: 500;
}

.direction-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 10px;
    padding: 0.32rem 0.75rem;
    font-size: 0.84rem;
    font-weight: 500;
}

.direction-pill-label {
    font-weight: 500;
    margin: 0;
}

.direction-long {
    color: #0f6f4d;
	justify-content: center;
    background: rgba(26, 163, 111, 0.16);
}

.direction-short {
    color: #b02d38;
	justify-content: center;
    background: rgba(220, 74, 86, 0.16);
}

.direction-hold {
    color: #475569;
	justify-content: center;
    background: rgba(100, 116, 139, 0.18);
}

.summary-grid,
.price-grid,
.forecast-grid,
.risk-grid {
    display: grid;
    gap: 0.7rem;
}

.summary-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.price-grid div,
.forecast-grid div,
.risk-grid div {
    border: 1px solid var(--color-border);
/*     border-radius: var(--radius-sm); */
    background: var(--color-surface-soft);
    padding: 0.72rem 0.78rem;
}

.price-grid span,
.forecast-grid span,
.risk-grid span {
    display: block;
    font-size: 18px;
	text-align: center;
    font-weight: 500;
    color: var(--color-muted);
}

.price-grid strong,
.forecast-grid strong,
.risk-grid strong {
    display: block;
    margin-top: 0.15rem;
    color: var(--color-heading);
    font-weight: 500;
    overflow-wrap: anywhere;
}

.price-grid strong small {
    color: var(--color-muted);
    font-size: 0.8rem;
    font-weight: 400;
}

.crypto-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    border-bottom: 1px solid var(--color-border);
    background: #fbfdff;
    padding: 0.9rem 1rem;
}

.card-title-wrap {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    color: var(--color-heading);
    font-size: 0.98rem;
    font-weight: 500;
}

.crypto-card-header small {
    color: var(--color-muted);
    font-size: 0.8rem;
    font-weight: 400;
}

.chart-shell {
    border: 0;
    border-radius: 0;
    background: #ffffff;
    overflow: visible;
}

.chart-shell svg {
    display: block;
    width: 100%;
    height: auto;
}

.crypto-chart-svg .crypto-price-line {
    fill: none;
    stroke: #1d4ed8;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.crypto-chart-svg .crypto-chart-area {
    fill: rgba(29, 78, 216, 0.08);
}

.crypto-chart-svg .crypto-chart-plot {
    fill: #ffffff;
    stroke: none;
    stroke-width: 0;
}

.crypto-chart-svg .crypto-chart-grid {
    fill: none;
    stroke: #e4edf8;
    stroke-width: 0.8;
}

.crypto-chart-svg .crypto-axis-label {
    fill: #6b7280;
    font-size: 10.4px;
    font-weight: 500;
    direction: ltr;
    unicode-bidi: isolate;
}

.crypto-chart-svg .crypto-axis-y {
    text-anchor: end;
}

.crypto-chart-svg .crypto-axis-x {
    text-anchor: middle;
    font-size: 9px;
}

.crypto-chart-svg .crypto-line-entry {
    stroke: #1d4ed8;
    stroke-width: 1.2;
    stroke-dasharray: 5 3;
}

.crypto-chart-svg .crypto-line-tp {
    stroke: #16a34a;
    stroke-width: 1.2;
    stroke-dasharray: 5 3;
}

.crypto-chart-svg .crypto-line-sl {
    stroke: #dc2626;
    stroke-width: 1.2;
    stroke-dasharray: 5 3;
}

.chart-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.55rem;
}

.chart-meta span {
    border: 1px solid var(--color-border);
    border-radius: 999px;
    padding: 0.2rem 0.58rem;
    background: #fff;
    color: var(--color-muted);
    font-size: 0.78rem;
}

.price-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    margin-top: 0.78rem;
}

.indicator-table thead th {
    font-size: 0.78rem;
    color: var(--color-muted);
    border-top: 0;
    border-bottom-color: var(--color-border);
    font-weight: 500;
    white-space: nowrap;
    background: #fbfdff;
}

.indicator-table td {
    border-bottom-color: #edf2fa;
    font-size: 0.9rem;
    color: var(--color-text);
}

/* Dashboard section cards: flat (Chart, Indicators, Analysis, Forecast, Risk) */
#chart.crypto-card,
#chart.card,
#technical-indicators.crypto-card,
#technical-indicators.card,
#analysis.crypto-card,
#analysis.card,
#forecast.crypto-card,
#forecast.card {
    --bs-card-border-radius: 0;
    border-radius: 0 !important;
    box-shadow: none !important;
}

#chart .card-body,
#chart .crypto-card-header,
#technical-indicators .card-body,
#technical-indicators .crypto-card-header,
#analysis .card-body,
#analysis .crypto-card-header,
#forecast .card-body,
#forecast .crypto-card-header {
    border-radius: 0 !important;
}

#chart .chart-shell {
    border-radius: 0 !important;
    box-shadow: none !important;
}

#chart .chart-meta span {
    border-radius: 0 !important;
    box-shadow: none !important;
}

#forecast .forecast-item {
    border-radius: 0 !important;
    box-shadow: none !important;
}

#technical-indicators .table-responsive {
    border-radius: 0;
    box-shadow: none;
}

#technical-indicators .indicator-table,
#technical-indicators .table {
    border-radius: 0 !important;
    box-shadow: none !important;
}

#technical-indicators .indicator-table thead th:first-child,
#technical-indicators .indicator-table thead th:last-child {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

/* Paired dashboard rows: columns do not stretch cards to the taller sibling */
.crypto-dashboard-pair-row {
    align-items: flex-start;
}

.crypto-dashboard-pair-row > [class*="col-"] {
    display: flex;
    flex-direction: column;
}

#chart.crypto-chart-card {
    height: auto !important;
    align-self: flex-start;
    width: 100%;
    flex: 0 0 auto;
}

#chart .crypto-chart-body {
    flex: 0 0 auto;
}

#chart .crypto-chart-shell,
#chart .chart-shell {
    max-height: 340px;
}

#chart .crypto-chart-shell svg,
#chart .chart-shell svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 300px;
}

#chart.crypto-chart-card--empty .crypto-chart-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#chart .chart-empty-state {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    max-height: 160px;
    margin: 0;
    padding: 0.75rem 1rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
    text-align: center;
    font-size: 0.88rem;
    line-height: 1.45;
}

.crypto-dashboard-pair-row #technical-indicators,
.crypto-dashboard-pair-row #analysis,
.crypto-dashboard-pair-row #forecast {
    height: auto !important;
    align-self: flex-start;
    width: 100%;
}

.signal-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    padding: 0.15rem 0.54rem;
    font-size: 0.75rem;
    font-weight: 500;
}

.signal-pill.neutral {
    background: rgba(100, 116, 139, 0.18);
    color: #4b5563;
}

.analysis-text {
    font-size: 0.95rem;
    color: var(--color-text);
    line-height: 1.9;
    text-align: justify;
    overflow-wrap: anywhere;
    white-space: normal;
}

.entry-warning-ticker {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.7rem;
    width: 100%;
    overflow: visible;
    background: #b42318;
    color: #ffffff;
    padding: 0.52rem max(1rem, calc((100vw - 1140px) / 2));
    box-shadow: 0 8px 18px rgba(180, 35, 24, 0.18);
}

.entry-warning-ticker--success {
    background: #0f7a55;
    box-shadow: 0 8px 18px rgba(15, 122, 85, 0.18);
}

.entry-warning-ticker--failure,
.entry-warning-ticker--warning {
    background: #b42318;
    box-shadow: 0 8px 18px rgba(180, 35, 24, 0.18);
}

.entry-warning-ticker--support {
    background: #0f766e;
    box-shadow: 0 8px 18px rgba(15, 118, 110, 0.18);
}

.entry-warning-ticker--caution,
.entry-warning-ticker--cancelled {
    background: #8a6116;
    box-shadow: 0 8px 18px rgba(138, 97, 22, 0.18);
}

.entry-warning-ticker--review,
.entry-warning-ticker--expired {
    background: #475467;
    box-shadow: 0 8px 18px rgba(71, 84, 103, 0.18);
}

.entry-warning-ticker[hidden] {
    display: none !important;
}

.entry-warning-ticker__label {
    flex: 0 0 auto;
    color: #ffffff;
    font-weight: 700;
    white-space: nowrap;
}

.entry-warning-ticker__viewport {
    flex: 1 1 auto;
    min-width: 0;
    overflow: visible;
    white-space: normal;
}

.entry-warning-ticker__text {
    display: inline;
    min-width: 0;
    color: #ffffff;
    font-weight: 600;
    overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
    .entry-warning-ticker__text {
        animation: none;
        transform: none;
    }
}

.analysis-warning {
    margin-bottom: 0.85rem;
    border-inline-start: 4px solid #b42318;
    border-radius: var(--radius-sm);
    background: #fff1f0;
    color: #7a271a;
    padding: 0.72rem 0.9rem;
    font-size: 0.92rem;
    line-height: 1.65;
}

.forecast-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.crypto-risk-card {
    margin-top: 0.15rem;
    margin-bottom: 0;
}

.risk-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}

.empty-state {
    color: var(--color-muted);
}

.disclaimer-section {
    padding-bottom: 0.95rem;
}

.disclaimer-section .container {
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-sm);
    background: #fbfdff;
    padding: 0.75rem 0.95rem;
}

.disclaimer-section p {
    margin: 0;
    color: var(--color-muted);
    font-size: 0.82rem;
}

.site-footer {
    border-top: 0;
    background: linear-gradient(90deg, #081a33 0%, #0f2a4e 100%);
    padding: 1rem 0 1.25rem;
}

.footer-stack {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
    width: 100%;
}

.footer-top-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    width: 100%;
}

.footer-brand-cluster {
    display: inline-flex;
    align-items: center;
    gap: 0.56rem;
    min-width: 0;
}

.footer-brand-text {
    text-align: left;
    min-width: 0;
}

.footer-btc-icon {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    box-shadow: none !important;
}

.footer-brand-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 6px;
    background: linear-gradient(135deg, #ffffff 0%, #d4efec 100%);
    color: #0a5653;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
}

.footer-brand-title {
    color: #d3e3ff;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.15;
}

.footer-brand-note {
    color: #a9c0e6;
    font-size: 0.75rem;
    line-height: 1.2;
}

.footer-copyright-en {
    flex-shrink: 0;
}

.footer-copyright-en small {
    color: #d3e3ff;
    font-size: 0.76rem;
    white-space: nowrap;
}

.footer-tagline {
    margin: 0;
    padding: 0 0.25rem;
    width: 100%;
    box-sizing: border-box;
    text-align: center;
    color: #b8ceef;
    font-size: 0.78rem;
    line-height: 1.45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 1199.98px) {
    .summary-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .risk-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991.98px) {
    .site-main {
        padding-top: 1.05rem;
    }

    .crypto-navbar-rows .crypto-lang-chip,
    .crypto-navbar-rows .crypto-nav-chip,
    .crypto-navbar-rows .crypto-nav-muted {
        width: 100%;
        justify-content: center;
    }

    .summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .price-grid,
    .forecast-grid,
    .risk-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .footer-top-row {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .footer-brand-text {
        text-align: center;
    }
}

@media (max-width: 575.98px) {
    body.public-page {
        font-size: 0.95rem;
    }

    .brand-title {
        font-size: 0.94rem;
    }

    .brand-subtitle {
        font-size: 0.72rem;
    }

    .summary-topline {
        flex-direction: column;
        align-items: flex-start;
    }

    .summary-grid,
    .price-grid,
    .forecast-grid,
    .risk-grid {
        grid-template-columns: 1fr;
    }

    .crypto-card-header {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* ---- dashboard cards (summary strip) ---- */
.dashboard-summary {
    border-radius: 0px;
}

.dashboard-summary .card-body {
    padding: 0.52rem 0.82rem;
}

.summary-layout {
    display: grid;
    grid-template-columns: minmax(200px, 0.92fr) minmax(0, 2.08fr);
    gap: 0.5rem;
    /* Equal row height across symbol + stats; inner content centers vertically */
    align-items: stretch;
}

.summary-layout > * {
    min-width: 0;
}

.symbol-compact-card {
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
    border: 1px solid var(--color-border);
    padding: 0.48rem 0.58rem;
    display: flex;
    flex-direction: column;
    gap: 0.34rem;
    min-height: 0;
    justify-content: center;
}

.symbol-compact-card .direction-pill {
    align-self: stretch;
    justify-content: center;
}

.symbol-compact-head {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.4rem;
    width: 100%;
}

.symbol-compact-top {
    display: flex;
    gap: 0.55rem;
    align-items: center;
    min-width: 0;
    flex: 1 1 auto;
}

.symbol-timeframe {
    flex-shrink: 0;
    align-self: flex-start;
    margin: 0;
    padding: 0.22rem 0.48rem;
    border-radius: var(--radius-sm);
    border: 1px solid var(--color-border);
    background: var(--color-surface);
    color: var(--color-heading);
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Stat strip fills column height so each tile matches symbol row height */
.crypto-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 0.42rem;
    align-items: stretch;
    align-self: stretch;
    width: 100%;
    min-height: 0;
    min-width: 0;
}

@media (min-width: 1200px) {
    .crypto-summary-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

.crypto-summary-card {
    box-sizing: border-box;
    display: grid;
    grid-template-rows: min-content minmax(0, 1fr);
    justify-items: center;
    min-height: 0;
    min-width: 0;
    align-self: stretch;
    padding: 0.4rem 0.44rem 0.46rem;
    gap: 0.2rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
    text-align: center;
}

.crypto-summary-label {
    grid-row: 1;
    display: flex;
    align-self: stretch;
    align-items: flex-start;
    justify-content: center;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    min-height: calc(15px * 1.22 * 2);
    width: 100%;
    font-size: 15px;
    font-weight: bold;
    line-height: 1.22;
    color: var(--color-muted);
    text-align: center;
}

.crypto-summary-value-wrap {
    grid-row: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    justify-self: stretch;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0.08rem 0 0;
    min-height: 0;
    gap: 0.06rem;
    overflow: visible;
}

.crypto-summary-value {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    font-size: 15px;
    font-weight: 500;
    color: var(--color-heading);
    line-height: 1.35;
    text-align: center;
    overflow-wrap: anywhere;
}

.trade-setup-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 64px;
    max-width: 100%;
    padding: 0.22rem 0.48rem;
    border-radius: var(--radius-sm);
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

.trade-setup-badge--buy {
    background: #e7f7ef;
    color: #0f6f4d;
}

.trade-setup-badge--buycaution {
    background: #e7f7ef;
    color: #0f6f4d;
}

.trade-setup-badge--sell {
    background: #fff1f2;
    color: #a32635;
}

.trade-setup-badge--sellcaution {
    background: #fff1f2;
    color: #a32635;
}

.trade-setup-badge--watch,
.trade-setup-badge--watchbuy,
.trade-setup-badge--watchsell {
    background: #eaf3ff;
    color: #1d4ed8;
}

.trade-setup-badge--volatile {
    background: #fff7ed;
    color: #c2410c;
}

.crypto-summary-value--multiline {
    white-space: pre-line;
}

.crypto-summary-subvalue {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    font-size: 0.7rem;
    font-weight: 400;
    line-height: 1.28;
    color: var(--color-muted);
    text-align: center;
}

.crypto-summary-confidence {
    justify-content: center;
}

.crypto-summary-confidence .confidence-wrap {
    margin-inline: auto;
}

.confidence-wrap {
    position: relative;
    flex-shrink: 0;
    width: 46px;
    height: 46px;
    margin-top: 0;
    margin-bottom: 0;
    text-align: center;
    isolation: isolate;
}

.confidence-ring {
    --confidence-pct: 0;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: conic-gradient(
        #15a775 0 calc(var(--confidence-pct) * 1%),
        #d9e4ef calc(var(--confidence-pct) * 1%) 100%
    );
}

.crypto-summary-card--confidence .confidence-value-label {
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
    width: 36px;
    height: 36px;
    margin: 0;
    border-radius: 50%;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.73rem;
    font-weight: 500;
    line-height: 1.08;
    text-align: center;
    overflow-wrap: normal;
    box-sizing: border-box;
    padding: 0 2px;
}

.forecast-list {
    display: grid;
    gap: 0.55rem;
}

.forecast-list--merged {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.forecast-item {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-surface-soft);
    padding: 0.6rem 0.7rem;
}

.forecast-label {
    font-size: 0.82rem;
    color: var(--color-muted);
}

.forecast-value {
    margin-top: 0.1rem;
    color: var(--color-heading);
    font-weight: 500;
}

.forecast-value--badge {
    display: flex;
    justify-content: center;
}

.forecast-item--wide {
    grid-column: 1 / -1;
}

.signal-pill.signal-bull {
    background: rgba(26, 163, 111, 0.16);
    color: #0e7a53;
}

.signal-pill.signal-bear {
    background: rgba(220, 74, 86, 0.14);
    color: #b22d39;
}

.signal-pill.signal-neutral {
    background: rgba(100, 116, 139, 0.16);
    color: #4c5a6b;
}

.signal-pill.signal-warn {
    background: rgba(217, 119, 6, 0.15);
    color: #b45309;
}

.signal-pill.signal-info {
    background: rgba(37, 99, 235, 0.12);
    color: #1d4ed8;
}

.chart-line-indicator {
    font-weight: 500;
}

.chart-line-indicator.line-entry {
    border-color: rgba(29, 78, 216, 0.32);
    color: #1d4ed8;
}

.chart-line-indicator.line-tp {
    border-color: rgba(22, 163, 74, 0.32);
    color: #15803d;
}

.chart-line-indicator.line-sl {
    border-color: rgba(220, 38, 38, 0.32);
    color: #b91c1c;
}

@media (max-width: 1199.98px) {
    .summary-layout {
        grid-template-columns: 1fr;
    }

    .crypto-summary-grid {
        grid-template-columns: repeat(auto-fit, minmax(138px, 1fr));
    }
}

@media (max-width: 575.98px) {
    .crypto-summary-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== crypto-content-layout (append-only; do not edit rules above) ===== */
.crypto-content-layout {
    display: grid;
    gap: 1rem;
    align-items: start;
    grid-template-columns: 1fr;
    grid-template-areas:
        "stack-main"
        "stack-side";
    margin-bottom: 1rem;
}

.crypto-side-stack {
    grid-area: stack-side;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

.crypto-main-stack {
    grid-area: stack-main;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    min-width: 0;
}

@media (min-width: 992px) {
    .crypto-content-layout {
        direction: ltr;
        grid-template-columns: minmax(0, 65fr) minmax(300px, 35fr);
        grid-template-areas: "stack-main stack-side";
    }

    [dir="rtl"] .crypto-content-layout {
        grid-template-columns: minmax(300px, 35fr) minmax(0, 65fr);
        grid-template-areas: "stack-side stack-main";
    }

    [dir="rtl"] .crypto-content-layout .crypto-main-stack,
    [dir="rtl"] .crypto-content-layout .crypto-side-stack {
        direction: rtl;
    }
}

.crypto-content-layout .card.crypto-card,
.crypto-content-layout section.card {
    height: auto !important;
    max-height: none;
    align-self: flex-start;
}

.crypto-content-layout .crypto-main-stack > .card,
.crypto-content-layout .crypto-side-stack > .card {
    width: 100%;
}

.crypto-content-layout #chart.crypto-chart-compact-card,
.crypto-content-layout #chart.crypto-chart-card {
    height: auto !important;
    flex: 0 0 auto;
}

.crypto-content-layout #chart .crypto-chart-compact-body,
.crypto-content-layout #chart .crypto-chart-body {
    flex: 0 0 auto;
    height: auto !important;
    min-height: 0;
}

.crypto-content-layout #chart .crypto-chart-shell,
.crypto-content-layout #chart .chart-shell {
    max-height: 340px;
    overflow: hidden;
}

.crypto-content-layout #chart .crypto-chart-shell svg,
.crypto-content-layout #chart .chart-shell svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 300px;
}

.crypto-content-layout #chart.crypto-chart-card--empty .crypto-chart-compact-body,
.crypto-content-layout #chart.crypto-chart-card--empty .crypto-chart-body {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.crypto-content-layout #chart .chart-empty-state {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    max-height: 160px;
    margin: 0;
    padding: 0.75rem 1rem;
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-soft);
    text-align: center;
    font-size: 0.88rem;
    line-height: 1.45;
}

.crypto-content-layout #technical-indicators,
.crypto-content-layout #analysis,
.crypto-content-layout #forecast {
    height: auto !important;
}

/* ===== P76 public candlestick chart and ad slot polish ===== */
.crypto-ad-card {
    overflow: hidden;
}

.crypto-ad-card .card-body {
    padding: 0.75rem;
}

.crypto-ad-slot {
    display: flex;
    min-height: 220px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 0.25rem;
    border: 1px dashed var(--color-border-strong);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, #fbfdff 0%, var(--color-surface-soft) 100%);
    text-align: center;
}

.crypto-ad-label {
    color: var(--color-muted);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.04em;
}

.crypto-ad-placeholder {
    color: var(--color-heading);
    font-size: 0.95rem;
    font-weight: 500;
}

.crypto-candle-svg .crypto-candle-wick {
    stroke-width: 1.2;
    stroke-linecap: round;
}

.crypto-candle-svg .crypto-candle-body {
    stroke-width: 1;
    shape-rendering: crispEdges;
}

.crypto-candle-svg .crypto-candle-up {
    fill: #16a34a;
    stroke: #15803d;
}

.crypto-candle-svg .crypto-candle-down {
    fill: #dc2626;
    stroke: #b91c1c;
}

.crypto-candle-svg .crypto-chart-axis {
    stroke: #c8d8f0;
    stroke-width: 1;
}

.crypto-candle-svg .crypto-chart-level {
    stroke-width: 1.25;
    stroke-dasharray: 5 3;
}

.crypto-candle-svg .crypto-chart-level-entry {
    stroke: #f97316;
}

.crypto-candle-svg .crypto-chart-level-tp {
    stroke: #16a34a;
}

.crypto-candle-svg .crypto-chart-level-sl {
    stroke: #dc2626;
}

.crypto-candle-svg .crypto-chart-level-label {
    font-size: 10px;
    font-weight: 700;
    text-anchor: middle;
    fill: #ffffff;
    stroke: none;
    pointer-events: none;
    unicode-bidi: isolate;
}

.crypto-candle-svg .crypto-chart-level-label-group {
    pointer-events: none;
}

.crypto-candle-svg .crypto-chart-level-label-bg {
    stroke: #ffffff;
    stroke-width: 1;
    stroke-linejoin: round;
}

.crypto-candle-svg .crypto-chart-level-entry-label-bg {
    fill: #f97316;
}

.crypto-candle-svg .crypto-chart-level-entry-label {
    fill: #ffffff;
}

.crypto-candle-svg .crypto-chart-level-tp-label-bg {
    fill: #16a34a;
}

.crypto-candle-svg .crypto-chart-level-tp-label {
    fill: #ffffff;
}

.crypto-candle-svg .crypto-chart-level-sl-label-bg {
    fill: #dc2626;
}

.crypto-candle-svg .crypto-chart-level-sl-label {
    fill: #ffffff;
}

.crypto-candle-svg .crypto-live-price-line {
    stroke: #2563eb;
    stroke-width: 1.35;
    stroke-dasharray: 4 3;
}

.crypto-candle-svg .crypto-live-layer,
.crypto-candle-svg .crypto-live-price-label-group {
    pointer-events: none;
}

.crypto-candle-svg .crypto-live-price-label-bg {
    fill: #2563eb;
    stroke: #ffffff;
    stroke-width: 1.5;
}

.crypto-candle-svg .crypto-live-price-label {
    fill: #ffffff;
    stroke: none;
    font-size: 11.5px;
    font-weight: 700;
    direction: ltr;
    text-anchor: middle;
    unicode-bidi: isolate;
}

.crypto-candle-svg .crypto-live-candle-wick {
    stroke-width: 1.35;
    stroke-linecap: round;
}

.crypto-candle-svg .crypto-live-candle-body {
    stroke-width: 1;
    shape-rendering: crispEdges;
}

@media (max-width: 991.98px) {
    .crypto-content-layout {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }

    .crypto-content-layout .crypto-side-stack,
    .crypto-content-layout .crypto-main-stack {
        display: contents;
    }

    .crypto-content-layout #chart {
        order: 1;
    }

    .crypto-content-layout #technical-indicators {
        order: 2;
    }

    .crypto-content-layout #advertisement {
        order: 3;
    }

    .crypto-content-layout #analysis {
        order: 4;
    }

    .crypto-content-layout #forecast {
        order: 5;
    }

    .crypto-ad-slot {
        min-height: 150px;
    }

    .forecast-list--merged {
        grid-template-columns: 1fr;
    }
}

/* P2K-D public chart and indicator presentation cleanup */
.crypto-chart-panel {
    width: 100%;
    align-self: flex-start;
    padding: 0.62rem 0.68rem 0.56rem;
    border: 1px solid rgba(194, 209, 229, 0.82);
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
    min-width: 0;
}

#chart.crypto-chart-panel {
    height: auto !important;
    flex: 0 0 auto;
}

#chart.crypto-chart-panel .chart-shell,
#chart.crypto-chart-panel .crypto-chart-shell {
    width: 100%;
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
    min-width: 0;
}

#chart.crypto-chart-panel .chart-shell svg,
#chart.crypto-chart-panel .crypto-chart-shell svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: none;
    background: #ffffff;
}

#chart.crypto-chart-panel .crypto-chart-plot {
    fill: #ffffff;
    stroke: none;
    stroke-width: 0;
}

.chart-trade-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.44rem 0.95rem;
    margin: 0 0 0.48rem;
    direction: inherit;
}

.chart-trade-summary__item {
    display: inline-flex;
    align-items: baseline;
    gap: 0.34rem;
    min-width: 0;
    color: var(--color-muted);
    font-size: 0.78rem;
    line-height: 1.35;
}

.chart-trade-summary__label {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    font-weight: 500;
    white-space: nowrap;
}

.chart-trade-summary__value {
    color: var(--color-heading);
    font-weight: 600;
    white-space: nowrap;
    direction: ltr;
    unicode-bidi: isolate;
}

.chart-trade-summary__marker {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 999px;
    background: #6c7b90;
    flex: 0 0 auto;
}

.chart-trade-summary--entry .chart-trade-summary__marker {
    background: #f97316;
}

.chart-trade-summary--entry .chart-trade-summary__label,
.chart-trade-summary--entry .chart-trade-summary__value {
    color: #c2410c;
}

.chart-trade-summary--sl .chart-trade-summary__marker {
    background: #dc2626;
}

.chart-trade-summary--sl .chart-trade-summary__label,
.chart-trade-summary--sl .chart-trade-summary__value {
    color: #b91c1c;
}

.chart-trade-summary--tp .chart-trade-summary__marker {
    background: #16a34a;
}

.chart-trade-summary--tp .chart-trade-summary__label,
.chart-trade-summary--tp .chart-trade-summary__value {
    color: #15803d;
}

.chart-helper-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.85rem;
    margin-top: 0.46rem;
    padding-top: 0.42rem;
    border-top: 1px solid rgba(205, 219, 238, 0.56);
    direction: inherit;
}

.chart-helper {
    display: inline-flex;
    align-items: center;
    gap: 0.36rem;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-muted);
    font-size: 0.78rem;
    line-height: 1.35;
    text-align: start;
}

.chart-helper__label {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    font-weight: 500;
    white-space: nowrap;
}

.chart-helper__label .bi {
    color: #6c7b90;
    font-size: 0.84rem;
    line-height: 1;
}

.chart-helper__value {
    color: var(--color-heading);
    font-weight: 600;
    white-space: nowrap;
    direction: ltr;
    unicode-bidi: isolate;
}

.chart-helper__marker {
    width: 0.48rem;
    height: 0.48rem;
    border-radius: 999px;
    background: #6c7b90;
    flex: 0 0 auto;
}

.chart-helper--live .chart-helper__marker {
    background: #2563eb;
}

.chart-helper--live .chart-helper__label,
.chart-helper--live .chart-helper__value {
    color: #1d4ed8;
}

.indicator-panel {
    width: 100%;
    align-self: flex-start;
    background: transparent;
}

.indicator-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 0.48rem;
}

.indicator-panel__title {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    color: var(--color-heading);
    font-size: 0.94rem;
    font-weight: 600;
    line-height: 1.35;
}

.indicator-panel__title .bi {
    color: var(--color-muted);
    font-size: 0.96rem;
}

.indicator-table-wrap {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
    direction: ltr;
}

.indicator-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
    border: 1px solid rgba(194, 209, 229, 0.82);
    border-radius: 0;
    background: #ffffff;
    direction: inherit;
}

.indicator-table__col--label {
    width: 38%;
}

.indicator-table__col--value {
    width: 28%;
}

.indicator-table__col--signal {
    width: 34%;
}

.indicator-table thead th {
    padding: 0.48rem 0.56rem;
    border: 1px solid rgba(194, 209, 229, 0.82);
    background: #f8fbff;
    color: var(--color-muted);
    font-size: 0.72rem;
    font-weight: 600;
    line-height: 1.3;
    text-align: start;
    text-transform: uppercase;
}

.indicator-table tbody td {
    padding: 0.42rem 0.54rem;
    border: 1px solid rgba(205, 219, 238, 0.72);
    background: #ffffff;
    color: var(--color-text);
    font-size: 0.82rem;
    line-height: 1.35;
    text-align: start;
    vertical-align: middle;
    overflow-wrap: anywhere;
}

.indicator-table__cell--label,
.indicator-table__head--label {
    text-align: start;
}

.indicator-table__cell--value {
    color: var(--color-heading);
    font-weight: 500;
    text-align: center;
}

.indicator-table__head--value,
.indicator-table__head--signal,
.indicator-table__cell--signal {
    text-align: center;
}

.indicator-table__cell--signal {
    padding: 0.28rem 0.36rem;
}

.indicator-signal-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    max-width: none;
    min-height: 0;
    padding: 0.32rem 0.42rem;
    border-radius: 4px;
    background: var(--signal-neutral-bg);
    color: var(--signal-neutral-text);
    font-size: 0.73rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    white-space: normal;
}

.indicator-signal-badge--bullish {
    background: var(--signal-bull-bg);
    color: var(--signal-bull-text);
}

.indicator-signal-badge--bearish {
    background: var(--signal-bear-bg);
    color: var(--signal-bear-text);
}

.indicator-signal-badge--neutral {
    background: var(--signal-neutral-bg);
    color: var(--signal-neutral-text);
}

.indicator-signal-badge--high-volatility {
    background: var(--signal-high-volatility-bg);
    color: var(--signal-high-volatility-text);
}

.indicator-signal-badge--medium-volatility {
    background: var(--signal-medium-volatility-bg);
    color: var(--signal-medium-volatility-text);
}

.indicator-signal-badge--low-volatility {
    background: var(--signal-low-volatility-bg);
    color: var(--signal-low-volatility-text);
}

.indicator-signal-badge--strong-trend {
    background: var(--signal-strong-trend-bg);
    color: var(--signal-strong-trend-text);
}

.indicator-signal-badge--weak-trend {
    background: var(--signal-weak-trend-bg);
    color: var(--signal-weak-trend-text);
}

.indicator-signal-badge--support {
    background: var(--signal-support-bg);
    color: var(--signal-support-text);
}

.indicator-signal-badge--resistance {
    background: var(--signal-resistance-bg);
    color: var(--signal-resistance-text);
}

.indicator-signal-badge--pivot {
    background: var(--signal-pivot-bg);
    color: var(--signal-pivot-text);
}

.disclaimer-section p {
    text-align: justify;
}

@media (max-width: 575.98px) {
    body.public-page {
        max-width: 100%;
        overflow-x: hidden;
    }

    .site-header .container,
    .crypto-dashboard > .container,
    .site-footer .container,
    .disclaimer-section .container {
        width: 100%;
        max-width: 100vw;
    }

    .dashboard-summary,
    .crypto-content-layout,
    .crypto-chart-panel,
    .indicator-panel {
        width: 100%;
        max-width: calc(100vw - 1.5rem);
    }

    .dashboard-summary,
    .summary-layout,
    .symbol-compact-card,
    .symbol-compact-head,
    .symbol-compact-top,
    .crypto-main-stack,
    .crypto-side-stack,
    .chart-shell,
    .indicator-table-wrap {
        width: calc(100vw - 1.5rem);
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
    }

    .indicator-table {
        width: calc(100vw - 1.5rem);
        max-width: 100%;
    }

    .chart-trade-summary,
    .chart-helper-list {
        gap: 0.4rem;
    }

    .chart-trade-summary__item,
    .chart-helper {
        flex: 0 1 auto;
        justify-content: flex-start;
        padding: 0;
        font-size: 0.74rem;
    }

    .indicator-table thead th,
    .indicator-table tbody td {
        padding-right: 0.42rem;
        padding-left: 0.42rem;
        font-size: 0.76rem;
    }

    .indicator-table__col--label {
        width: 34%;
    }

    .indicator-table__col--value {
        width: 30%;
    }

    .indicator-table__col--signal {
        width: 36%;
    }

    .indicator-table__cell--signal {
        padding-right: 0.22rem;
        padding-left: 0.22rem;
    }

    .indicator-signal-badge {
        padding-right: 0.24rem;
        padding-left: 0.24rem;
        font-size: 0.67rem;
    }
}

/* P2N-B mobile public analysis layout polish */
@media (max-width: 991.98px) {
    .site-main {
        padding-top: 0.75rem;
        padding-bottom: 1rem;
    }

    .dashboard-summary {
        margin-bottom: 0.8rem;
    }

    .dashboard-summary .card-body {
        padding: 0.45rem 0.55rem;
    }

    .crypto-content-layout {
        gap: 0.75rem;
        margin-bottom: 0.75rem;
    }

    .crypto-content-layout #chart {
        margin-bottom: 0.1rem;
    }

    .crypto-card-header {
        padding: 0.62rem 0.78rem;
    }

    .crypto-card .card-body {
        padding: 0.75rem 0.85rem;
    }

    .crypto-summary-card {
        padding: 0.36rem 0.4rem;
        gap: 0.16rem;
    }

    .crypto-summary-label {
        min-height: 0;
        align-items: center;
        font-size: 0.84rem;
        line-height: 1.2;
    }

    .crypto-summary-value {
        font-size: 0.86rem;
        line-height: 1.3;
    }

    .confidence-wrap,
    .confidence-ring {
        width: 40px;
        height: 40px;
    }

    .crypto-summary-card--confidence .confidence-value-label {
        width: 31px;
        height: 31px;
        font-size: 0.68rem;
    }

    .chart-helper-list {
        gap: 0.35rem 0.65rem;
        margin-top: 0.36rem;
        padding-top: 0.34rem;
    }

    .indicator-table thead th {
        padding: 0.36rem 0.4rem;
        font-size: 0.68rem;
        line-height: 1.16;
    }

    .indicator-table tbody td {
        padding: 0.28rem 0.38rem;
        font-size: 0.76rem;
        line-height: 1.22;
    }

    .indicator-table__cell--signal {
        padding: 0.2rem 0.26rem;
    }

    .indicator-signal-badge {
        padding: 0.2rem 0.28rem;
        font-size: 0.66rem;
        line-height: 1.12;
    }

    .forecast-list {
        gap: 0.42rem;
    }

    .forecast-list--merged {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .forecast-item {
        padding: 0.42rem 0.5rem;
    }

    .forecast-label {
        font-size: 0.74rem;
        line-height: 1.25;
    }

    .forecast-value {
        font-size: 0.82rem;
        line-height: 1.35;
    }

    .analysis-text {
        font-size: 0.92rem;
        line-height: 1.68;
    }

    .disclaimer-section {
        padding-bottom: 0.65rem;
    }

    .disclaimer-section .container {
        padding: 0.58rem 0.7rem;
    }

    .disclaimer-section p {
        font-size: 0.76rem;
        line-height: 1.55;
    }

    .site-footer {
        padding: 0.8rem 0 0.9rem;
    }

    .footer-stack {
        gap: 0.42rem;
    }

    .footer-tagline {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
        font-size: 0.73rem;
        line-height: 1.35;
    }
}

@media (max-width: 575.98px) {
    body.public-page {
        overflow-x: hidden;
    }

    .site-header .container,
    .crypto-dashboard > .container,
    .site-footer .container,
    .disclaimer-section .container {
        max-width: 100%;
    }

    .dashboard-summary,
    .crypto-content-layout,
    .crypto-chart-panel,
    .indicator-panel,
    .summary-layout,
    .symbol-compact-card,
    .symbol-compact-head,
    .symbol-compact-top,
    .crypto-main-stack,
    .crypto-side-stack,
    .chart-shell,
    .indicator-table-wrap,
    .indicator-table {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .summary-layout,
    .symbol-compact-card,
    .symbol-compact-head,
    .symbol-compact-top,
    .chart-shell,
    .indicator-table-wrap {
        overflow: visible;
    }

    .summary-layout {
        grid-template-columns: 1fr;
        gap: 0.42rem;
    }

    .symbol-compact-card {
        padding: 0.42rem 0.48rem;
        gap: 0.28rem;
    }

    .symbol-compact-head {
        align-items: center;
        gap: 0.35rem;
    }

    .symbol-compact-top {
        gap: 0.42rem;
    }

    .summary-btc-icon {
        width: 34px;
        height: 34px;
    }

    .summary-symbol-name {
        font-size: 0.98rem;
        line-height: 1.18;
    }

    .summary-kicker {
        font-size: 0.88rem;
        line-height: 1.25;
    }

    .symbol-timeframe {
        padding: 0.16rem 0.38rem;
        font-size: 0.72rem;
    }

    .symbol-compact-card .direction-pill {
        padding: 0.24rem 0.5rem;
        font-size: 0.78rem;
        line-height: 1.2;
    }

    .crypto-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.34rem;
        width: 100%;
    }

    .crypto-summary-card {
        min-height: 0;
        padding: 0.34rem 0.32rem;
        gap: 0.14rem;
    }

    .crypto-summary-card:last-child:nth-child(odd) {
        grid-column: 1 / -1;
    }

    .crypto-summary-label {
        min-height: 0;
        align-items: center;
        font-size: 0.76rem;
        font-weight: 600;
        line-height: 1.2;
    }

    .crypto-summary-value {
        font-size: 0.8rem;
        line-height: 1.28;
    }

    .trade-setup-badge {
        min-width: 0;
        padding: 0.18rem 0.42rem;
        font-size: 0.72rem;
    }

    .confidence-wrap,
    .confidence-ring {
        width: 34px;
        height: 34px;
    }

    .crypto-summary-card--confidence .confidence-value-label {
        width: 27px;
        height: 27px;
        font-size: 0.64rem;
        line-height: 1;
    }

    .crypto-chart-panel {
        width: 100%;
        max-width: 100%;
        margin-inline: 0;
        padding: 0.4rem 0.38rem 0.38rem;
    }

    #chart.crypto-chart-panel .chart-shell,
    #chart.crypto-chart-panel .crypto-chart-shell,
    #chart.crypto-chart-panel .chart-shell svg,
    #chart.crypto-chart-panel .crypto-chart-shell svg {
        width: 100%;
    }

    .crypto-candle-svg .crypto-axis-label {
        font-size: 8.4px;
    }

    .crypto-candle-svg .crypto-axis-x {
        font-size: 7.8px;
    }

    .crypto-candle-svg .crypto-live-price-label {
        font-size: 10px;
    }

    .chart-helper-list {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.28rem 0.68rem;
        justify-content: flex-start;
    }

    .chart-helper {
        flex: 0 0 auto;
        min-width: 0;
        max-width: 100%;
        font-size: 0.72rem;
        line-height: 1.25;
    }

    .chart-helper__label,
    .chart-helper__value {
        white-space: nowrap;
    }

    .indicator-table thead th {
        padding: 0.3rem 0.28rem;
        font-size: 0.62rem;
    }

    .indicator-table tbody td {
        padding: 0.24rem 0.28rem;
        font-size: 0.7rem;
        line-height: 1.18;
    }

    .indicator-table__col--label {
        width: 35%;
    }

    .indicator-table__col--value {
        width: 29%;
    }

    .indicator-table__col--signal {
        width: 36%;
    }

    .indicator-signal-badge {
        padding: 0.17rem 0.2rem;
        font-size: 0.6rem;
        line-height: 1.12;
    }

    .analysis-text {
        text-align: start;
        font-size: 0.9rem;
        line-height: 1.62;
    }

    .forecast-list--merged {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.35rem;
    }

    .forecast-item {
        padding: 0.35rem 0.4rem;
    }

    .forecast-item--wide {
        grid-column: 1 / -1;
    }

    .forecast-label {
        font-size: 0.68rem;
    }

    .forecast-value {
        font-size: 0.76rem;
    }

    .disclaimer-section p {
        text-align: start;
    }

    .footer-top-row {
        gap: 0.45rem;
    }

    .footer-brand-title {
        font-size: 0.86rem;
    }

    .footer-brand-note,
    .footer-copyright-en small,
    .footer-tagline {
        font-size: 0.7rem;
    }
}
