/*
 * KM Market — Bitcoin UI v0.2
 *
 * Presentation-only refinement.
 * Canonical data contract is unchanged.
 */

/* ============================================================
   PAGE / HEADER
   ============================================================ */

.km-dashboard-shell {
    padding-top: 22px;
    padding-bottom: 54px;
}

.km-asset-head {
    display: flex;
    flex-direction: column;
    margin-bottom: 12px;
}

.km-asset-main {
    order: 1;
    align-items: center;
}

.km-context-summary {
    order: 2;
    min-height: 26px;
    padding-top: 6px;
}

.km-context-bar {
    order: 3;
    margin-top: 8px;
    padding: 10px 13px;
    gap: 14px 26px;
    border-radius: 12px;
}

.km-asset-icon {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    font-size: 24px;
}

.km-asset-symbol {
    gap: 13px;
}

.km-asset-head h1 {
    margin-top: 3px;
    font-size: clamp(26px, 2.6vw, 34px);
}

.km-asset-head h1 span {
    font-size: 12px;
}

.km-price {
    font-size: clamp(29px, 3vw, 39px);
}

.km-price-meta {
    margin-top: 5px;
    font-size: 10px;
}

.km-control-label {
    font-size: 9px;
}

.km-segmented button {
    min-height: 31px;
    padding: 0 11px;
    font-size: 11px;
}

.km-market-identity {
    font-size: 10px;
}

.km-data-badge {
    min-height: 20px;
    font-size: 9px;
}

.km-data-badge.is-complete::before {
    width: 5px;
    height: 5px;
    margin-right: 5px;
    border-radius: 50%;
    background: var(--km-success);
    content: "";
}

.km-updated {
    font-size: 10px;
}


/* ============================================================
   CHART + MARKET SNAPSHOT
   ============================================================ */

.km-primary-grid {
    grid-template-columns: minmax(0, 1fr) 342px;
    gap: 10px;
}

.km-panel {
    border-radius: 14px;
}

.km-panel-head {
    padding: 15px 16px 0;
}

.km-panel-head h2 {
    font-size: 15px;
}

.km-chart {
    height: 520px;
    margin-top: 4px;
}

.km-chart-footer {
    padding: 6px 15px 11px;
}

.km-state-panel {
    display: flex;
    min-width: 0;
    flex-direction: column;
}

.km-state-panel .km-panel-head {
    padding-bottom: 8px;
}

.km-state-panel .km-panel-head h2 {
    max-width: 240px;
}

.km-snapshot-stack {
    display: grid;
    align-content: start;
    padding: 0 15px 13px;
}

.km-snapshot-group {
    padding-top: 8px;
}

.km-snapshot-group + .km-snapshot-group {
    margin-top: 8px;
    padding-top: 13px;
    border-top: 1px solid var(--km-border);
}

.km-snapshot-group-title {
    margin-bottom: 4px;
    color: var(--km-primary);
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.km-snapshot-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: baseline;
    min-height: 29px;
    padding: 6px 0;
}

.km-snapshot-row > span {
    min-width: 0;
    color: var(--km-muted);
    font-size: 10px;
}

.km-snapshot-value {
    color: var(--km-text);
    font-size: 11px;
    font-weight: 680;
    text-align: right;
    white-space: nowrap;
}

.km-snapshot-value.km-value-positive {
    color: var(--km-success);
}

.km-snapshot-value.km-value-negative {
    color: var(--km-danger);
}

.km-snapshot-note {
    grid-column: 1 / -1;
    margin-top: -4px;
    color: #667583;
    font-size: 8px;
    line-height: 1.35;
}

.km-snapshot-details {
    margin-top: 5px;
    padding-top: 8px;
    border-top: 1px solid var(--km-border);
}

.km-snapshot-details summary {
    cursor: pointer;
    color: var(--km-muted);
    font-size: 9px;
}

.km-snapshot-details dl {
    display: grid;
    gap: 5px;
    margin: 8px 0 0;
}

.km-snapshot-details dl div {
    display: grid;
    grid-template-columns: 74px minmax(0, 1fr);
    gap: 8px;
}

.km-snapshot-details dt {
    color: var(--km-muted);
    font-size: 8px;
}

.km-snapshot-details dd {
    overflow-wrap: anywhere;
    margin: 0;
    color: var(--km-text-2);
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 8px;
}

.km-load-status {
    margin: auto 15px 15px;
    padding: 9px 10px;
    font-size: 9px;
}

.km-load-status[hidden] {
    display: none !important;
}


/* ============================================================
   TECHNICAL DATA — TERMINAL DENSITY
   ============================================================ */

.km-section {
    margin-top: 10px;
    padding: 16px;
    border-radius: 14px;
}

.km-section-head {
    align-items: center;
}

.km-section-head h2 {
    font-size: 15px;
}

.km-section-head p {
    max-width: 620px;
    font-size: 9px;
}

.km-metric-groups {
    display: grid;
    overflow: hidden;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin-top: 13px;
    border: 1px solid var(--km-border);
    border-radius: 11px;
}

.km-metric-group {
    border: 0;
    border-right: 1px solid var(--km-border);
    border-radius: 0;
    background: transparent;
}

.km-metric-group:last-child {
    border-right: 0;
}

.km-metric-group header {
    padding: 10px 12px 8px;
    border-bottom: 1px solid var(--km-border);
    background: rgba(255, 255, 255, .012);
}

.km-metric-group dl {
    padding: 4px 12px 7px;
}

.km-metric-group dl div {
    padding: 5px 0;
}

.km-metric-group dt {
    font-size: 9px;
}

.km-metric-group dd {
    font-size: 10px;
}


/* ============================================================
   OLD LARGE DERIVATIVES SECTION
   Key derivatives are now in Market Snapshot.
   ============================================================ */

.km-derivatives-section {
    display: none !important;
}


/* ============================================================
   COMPACT DATA HEALTH STRIP
   ============================================================ */

.km-health-section {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px 18px;
    align-items: center;
    padding: 11px 14px;
}

.km-health-section .km-section-head {
    display: none;
}

.km-health-grid {
    display: grid;
    grid-template-columns:
        minmax(120px, .8fr)
        minmax(220px, 1.4fr)
        minmax(240px, 1.5fr)
        minmax(100px, .6fr);
    gap: 0;
    margin: 0;
}

.km-health-grid > div {
    min-width: 0;
    padding: 5px 13px;
    border: 0;
    border-right: 1px solid var(--km-border);
    border-radius: 0;
}

.km-health-grid > div:first-child {
    padding-left: 2px;
}

.km-health-grid > div:last-child {
    border-right: 0;
}

.km-health-grid span {
    font-size: 8px;
}

.km-health-grid strong {
    margin-top: 3px;
    font-size: 9px;
}

.km-health-grid > div:first-child strong {
    color: var(--km-success);
}

.km-health-grid > div:first-child strong::before {
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--km-success);
    vertical-align: 1px;
    content: "";
}

.km-provenance {
    min-width: 150px;
    margin: 0;
    border-top: 0;
}

.km-provenance summary {
    padding: 6px 4px;
    font-size: 9px;
    white-space: nowrap;
}

.km-provenance dl {
    position: absolute;
    z-index: 20;
    right: 30px;
    width: min(540px, calc(100vw - 40px));
    margin-top: 8px;
    padding: 12px 14px;
    border: 1px solid var(--km-border-strong);
    border-radius: 10px;
    background: #111923;
    box-shadow: 0 22px 70px rgba(0, 0, 0, .45);
}

.km-provenance:not([open]) dl {
    display: none;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 1120px) {
    .km-primary-grid {
        grid-template-columns: 1fr;
    }

    .km-chart {
        height: 500px;
    }

    .km-snapshot-stack {
        grid-template-columns: 1fr 1fr;
        gap: 0 26px;
    }

    .km-snapshot-group + .km-snapshot-group {
        margin-top: 0;
        padding-top: 8px;
        border-top: 0;
    }

    .km-snapshot-details {
        grid-column: 1 / -1;
    }

    .km-health-section {
        grid-template-columns: 1fr;
    }

    .km-provenance dl {
        position: static;
        width: auto;
    }
}

@media (max-width: 820px) {
    .km-metric-groups {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .km-metric-group:nth-child(2) {
        border-right: 0;
    }

    .km-metric-group:nth-child(-n+2) {
        border-bottom: 1px solid var(--km-border);
    }

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

    .km-health-grid > div:nth-child(2) {
        border-right: 0;
    }

    .km-health-grid > div:nth-child(-n+2) {
        border-bottom: 1px solid var(--km-border);
    }
}

@media (max-width: 720px) {
    .km-dashboard-shell {
        width: min(100% - 20px, 1480px);
        padding-top: 14px;
    }

    .km-asset-main {
        gap: 12px;
    }

    .km-context-summary {
        gap: 7px;
    }

    .km-context-bar {
        margin-top: 7px;
        padding: 10px;
    }

    .km-chart {
        height: 410px;
    }

    .km-snapshot-stack {
        grid-template-columns: 1fr;
    }

    .km-snapshot-group + .km-snapshot-group {
        margin-top: 8px;
        padding-top: 12px;
        border-top: 1px solid var(--km-border);
    }

    .km-metric-groups,
    .km-health-grid {
        grid-template-columns: 1fr;
    }

    .km-metric-group,
    .km-metric-group:nth-child(2),
    .km-health-grid > div,
    .km-health-grid > div:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid var(--km-border);
    }

    .km-metric-group:last-child,
    .km-health-grid > div:last-child {
        border-bottom: 0;
    }

    .km-section-head p {
        display: none;
    }
}
