/* Dollar Volume tool page — built on style.css token system. */

/* Honor the [hidden] attribute even on elements we give an explicit display.
   Without this, .dv-field / .dv-result display rules override the UA
   [hidden]{display:none} and the JS toggles do nothing. */
[hidden] { display: none !important; }

.dv-jump {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-3);
    margin-top: var(--space-5);
}

/* ---- prose blocks ---- */
.dv-prose {
    max-width: var(--container-narrow);
    margin-inline: auto;
}
.dv-prose--center {
    text-align: center;
}
.dv-prose--center .dv-cards,
.dv-prose--center ol,
.dv-prose--center table {
    text-align: left;
}
.dv-prose h2 {
    font-family: var(--font-display);
    font-size: var(--t-section);
    line-height: 1.1;
    letter-spacing: -0.02em;
    margin: var(--space-2) 0 var(--space-4);
    color: var(--bone);
}
.dv-prose h3 {
    font-family: var(--font-display);
    font-size: var(--t-xl);
    letter-spacing: -0.01em;
    margin: var(--space-5) 0 var(--space-2);
    color: var(--bone);
}
.dv-prose p {
    color: var(--bone-2);
    font-size: var(--t-md);
    line-height: 1.65;
    margin-bottom: var(--space-3);
}
.dv-prose strong { color: var(--bone); }
.dv-prose em { color: var(--bone); font-style: italic; }

/* ---- the reveal table ---- */
.dv-tablewrap {
    margin: var(--space-5) 0;
}
.dv-reveal {
    width: 100%;
}
.dv-note-inline {
    font-family: var(--font-mono);
    font-size: var(--t-xs);
    color: var(--edge);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.dv-caption {
    font-size: var(--t-sm) !important;
    color: var(--bone-3) !important;
    margin-top: var(--space-2);
}

/* ---- calculator shell ---- */
.dv-calc {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--space-4);
    align-items: start;
    margin-top: var(--space-5);
}
.dv-calc__form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
    background: var(--ink-3);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: var(--space-5);
}
.dv-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dv-field label {
    font-family: var(--font-mono);
    font-size: var(--t-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--bone-3);
}
.dv-opt { color: var(--bone-4); text-transform: none; letter-spacing: 0; }
.dv-field input,
.dv-field select {
    width: 100%;
    background: var(--ink);
    border: 1px solid var(--line-2);
    border-radius: var(--r-md);
    color: var(--bone);
    font-family: var(--font-mono);
    font-size: var(--t-base);
    padding: 12px 14px;
    min-height: 46px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.dv-field input:focus,
.dv-field select:focus {
    outline: none;
    border-color: var(--edge);
    box-shadow: 0 0 0 3px var(--edge-glow);
}
.dv-hint {
    font-size: var(--t-xs);
    color: var(--bone-4);
    line-height: 1.4;
    margin: 0;
}

/* segmented control */
.dv-seg {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    background: var(--ink);
    border: 1px solid var(--line-2);
    border-radius: var(--r-md);
    padding: 4px;
}
.dv-seg__btn {
    appearance: none;
    border: none;
    background: transparent;
    color: var(--bone-3);
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    padding: 10px 8px;
    min-height: 44px;
    border-radius: var(--r-sm);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}
.dv-seg__btn:hover { color: var(--bone); }
.dv-seg__btn.is-active {
    background: var(--edge-soft);
    color: var(--edge);
    box-shadow: inset 0 0 0 1px var(--edge);
}

/* ---- results ---- */
.dv-results {
    position: sticky;
    top: var(--space-4);
    background: var(--ink-2);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: var(--space-5);
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
}
.dv-result {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-bottom: var(--space-3);
    border-bottom: 1px solid var(--line);
}
.dv-result__label {
    font-family: var(--font-mono);
    font-size: var(--t-xs);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--bone-3);
}
.dv-result__num {
    font-family: var(--font-mono);
    font-size: var(--t-2xl);
    color: var(--bone);
    letter-spacing: -0.02em;
}
.dv-result--hero .dv-result__num {
    font-size: var(--t-4xl);
    color: var(--edge);
    line-height: 1;
}
.dv-readout {
    font-size: var(--t-sm);
    line-height: 1.55;
    color: var(--bone-2);
    margin: 0;
}
.dv-badge {
    align-self: flex-start;
    font-family: var(--font-mono);
    font-size: var(--t-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    padding: 6px 12px;
    border-radius: 100px;
    border: 1px solid var(--line-2);
    color: var(--bone-2);
}
.dv-badge.is-neutral { color: var(--neutral); border-color: var(--neutral); }
.dv-badge.is-ok { color: var(--win); border-color: var(--win); }
.dv-badge.is-edge { color: var(--edge); border-color: var(--edge); background: var(--edge-soft); }
.dv-badge.is-loss { color: var(--loss); border-color: var(--loss); }

/* ---- comparator ---- */
.dv-compare {
    margin-top: var(--space-6);
    background: var(--ink-3);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: var(--space-5);
}
.dv-compare__grid {
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
    margin-top: var(--space-3);
}
.dv-compare__head {
    display: grid;
    grid-template-columns: 1fr 1fr 1.4fr 1.2fr;
    gap: var(--space-2);
    order: -1;
    font-family: var(--font-mono);
    font-size: var(--t-xs);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--bone-4);
    padding: 0 4px;
}
.dv-compare__row {
    display: grid;
    grid-template-columns: 1fr 1fr 1.4fr 1.2fr;
    gap: var(--space-2);
    align-items: center;
}
.dv-compare__row input {
    background: var(--ink);
    border: 1px solid var(--line-2);
    border-radius: var(--r-sm);
    color: var(--bone);
    font-family: var(--font-mono);
    font-size: var(--t-sm);
    padding: 10px 12px;
    min-height: 44px;
    width: 100%;
}
.dv-compare__row input:focus {
    outline: none;
    border-color: var(--edge);
    box-shadow: 0 0 0 3px var(--edge-glow);
}
.dv-cmp-out {
    color: var(--win);
    font-size: var(--t-base);
}
.dv-verdict {
    margin-top: var(--space-4);
    padding-top: var(--space-3);
    border-top: 1px solid var(--line);
    color: var(--bone);
    font-size: var(--t-md);
    line-height: 1.5;
}

/* ---- cross-asset cards ---- */
.dv-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-3);
    margin-top: var(--space-4);
}
.dv-card {
    background: var(--ink-3);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: var(--space-4);
}
.dv-card h3 {
    margin: 0 0 var(--space-2);
    font-family: var(--font-display);
    font-size: var(--t-lg);
    color: var(--edge);
}
.dv-card p { font-size: var(--t-sm); margin: 0; }

/* ---- metrics field guide ---- */
.dv-metrics {
    display: flex;
    flex-direction: column;
    gap: var(--space-3);
    max-width: var(--container-narrow);
    margin-inline: auto;
}
.dv-metric {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: var(--space-4);
    background: var(--ink-3);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: var(--space-5);
}
.dv-metric__no {
    font-family: var(--font-mono);
    font-size: var(--t-2xl);
    font-weight: 500;
    color: var(--edge);
    line-height: 1;
}
.dv-metric__body h3 {
    margin: 0 0 6px;
    font-family: var(--font-display);
    font-size: var(--t-xl);
    color: var(--bone);
}
.dv-metric__tag {
    color: var(--bone-2) !important;
    font-style: italic;
    font-size: var(--t-base) !important;
    margin-bottom: var(--space-3) !important;
}
.dv-metric__body p {
    font-size: var(--t-base);
    line-height: 1.6;
    color: var(--bone-2);
    margin-bottom: var(--space-2);
}
.dv-metric__body p:last-child { margin-bottom: 0; }
.dv-metric__body strong { color: var(--bone); }
.dv-cjk {
    font-size: 1.05em;
    color: var(--bone);
    letter-spacing: 0.02em;
}

/* ---- reasons ---- */
.dv-reasons {
    counter-reset: dvr;
    list-style: none;
    padding: 0;
    margin: var(--space-4) 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.dv-reasons li {
    position: relative;
    padding: var(--space-3) var(--space-3) var(--space-3) calc(var(--space-6) + 8px);
    background: var(--ink-3);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    color: var(--bone-2);
    font-size: var(--t-base);
    line-height: 1.55;
    counter-increment: dvr;
}
.dv-reasons li::before {
    content: counter(dvr);
    position: absolute;
    left: var(--space-3);
    top: var(--space-3);
    font-family: var(--font-mono);
    font-size: var(--t-md);
    color: var(--edge);
}
.dv-reasons strong { color: var(--bone); }

/* ---- FAQ ---- */
.dv-faq {
    margin: var(--space-4) 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-2);
}
.dv-faq details {
    background: var(--ink-3);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    padding: var(--space-3) var(--space-4);
}
.dv-faq summary {
    cursor: pointer;
    font-family: var(--font-display);
    font-size: var(--t-md);
    color: var(--bone);
    list-style: none;
}
.dv-faq summary::-webkit-details-marker { display: none; }
.dv-faq summary::after {
    content: "+";
    float: right;
    color: var(--edge);
    font-family: var(--font-mono);
}
.dv-faq details[open] summary::after { content: "−"; }
.dv-faq details p {
    margin: var(--space-2) 0 0;
    font-size: var(--t-base);
    color: var(--bone-2);
    line-height: 1.6;
}
.dv-disclaimer {
    font-size: var(--t-xs) !important;
    color: var(--loss) !important;
    opacity: 0.8;
    line-height: 1.5;
    margin-top: var(--space-4) !important;
}

/* ---- responsive ---- */
@media (max-width: 860px) {
    .dv-calc { grid-template-columns: 1fr; }
    .dv-results { position: static; }
    .dv-cards { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .dv-metric { grid-template-columns: 1fr; gap: var(--space-2); }
    .dv-metric__no { font-size: var(--t-xl); }
    .dv-compare__head { display: none; }
    .dv-compare__row {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-2);
        padding-bottom: var(--space-3);
        border-bottom: 1px solid var(--line);
    }
    .dv-cmp-name { grid-column: 1 / -1; }
    .dv-cmp-out { grid-column: 1 / -1; text-align: right; }
}
@media (prefers-reduced-motion: reduce) {
    .dv-field input, .dv-field select, .dv-seg__btn { transition: none; }
}
