body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}
main {
    flex: 1;
}
.card {
    transition: transform 0.15s;
}
.card:hover {
    transform: translateY(-3px);
}
.progress-container {
    display: none;
}
.progress-container.active {
    display: block;
}
.result-table {
    max-height: 500px;
    overflow-y: auto;
}
.highlight-bold {
    font-weight: bold;
    color: #198754;
}
.highlight-strike {
    text-decoration: line-through;
    color: #999;
}
#steps-log {
    max-height: 150px;
    overflow-y: auto;
    font-family: monospace;
}
.hw {
    padding: 1px 3px;
    border-radius: 3px;
    cursor: default;
    transition: opacity 0.15s;
}
.hw:hover {
    opacity: 0.8;
}
