/* Word Ladder Solver (C07). Feature-scoped styles only; shared tokens and
   utility classes come from main.css. Respects [data-theme="dark"] tokens. */

.ladder-tool {
    max-width: 46rem;
    margin: 0 auto;
    padding: 0 1rem 3rem;
}

.ladder-panel {
    margin: 1.25rem 0 2rem;
}

.ladder-modes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.ladder-mode-btn {
    min-height: 2.75rem;
    border: 1px solid var(--color-border, #c9c9c9);
    background: var(--color-surface, transparent);
    color: inherit;
    border-radius: 999px;
    padding: 0.35rem 0.9rem;
    font: inherit;
    font-size: 0.9rem;
    cursor: pointer;
}

.ladder-mode-btn:focus-visible {
    outline: 2px solid var(--color-accent, #2563eb);
    outline-offset: 2px;
}

.ladder-mode-btn[aria-pressed="true"] {
    background: var(--color-accent, #2563eb);
    border-color: var(--color-accent, #2563eb);
    color: #fff;
}

.ladder-inputs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 0.5rem;
}

.ladder-field {
    flex: 1 1 12rem;
    min-width: 9rem;
}

#ladder-submit {
    margin-top: 0.75rem;
}

.ladder-results-title {
    margin: 0 0 0.75rem;
}

.ladder-path {
    list-style: none;
    margin: 0 0 1.5rem;
    padding: 0;
}

.ladder-path li {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.35rem 0;
    border-bottom: 1px solid var(--color-border, #e2e2e2);
}

.ladder-rung-word {
    font-family: var(--font-mono, monospace);
    font-size: 1.15rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.ladder-rung-word .ladder-changed {
    color: var(--color-accent, #2563eb);
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.ladder-rung-gloss {
    font-size: 0.85rem;
    opacity: 0.8;
}

.ladder-alt-heading {
    margin: 1.5rem 0 0.5rem;
    font-size: 1rem;
}

.ladder-word-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0;
    margin: 0 0 1.5rem;
    list-style: none;
}

.ladder-word-grid li {
    border: 1px solid var(--color-border, #d8d8d8);
    border-radius: 0.5rem;
    padding: 0.4rem 0.7rem;
}

.ladder-word-grid .ladder-rung-word {
    font-size: 1rem;
}

.ladder-word-grid .ladder-rung-gloss {
    display: block;
    max-width: 14rem;
}

.ladder-explanation {
    border-left: 3px solid var(--color-border, #d8d8d8);
    padding: 0.25rem 0 0.25rem 1rem;
    margin: 0 0 1.5rem;
}

.ladder-explanation p {
    margin: 0.35rem 0;
}

.tool-about__provenance {
    font-size: 0.85rem;
    opacity: 0.8;
}

[data-theme="dark"] .ladder-mode-btn {
    border-color: var(--color-border, #3f3f46);
}

[data-theme="dark"] .ladder-path li,
[data-theme="dark"] .ladder-word-grid li,
[data-theme="dark"] .ladder-explanation {
    border-color: var(--color-border, #3f3f46);
}
